神奇的 strtotime 《顺手的 PHP》
PHP 手册上的 strtotime:将任何字符串的日期时间描述解析为 Unix 时间戳。 说人话:将英语语法的文本转化为时间戳。
参数
第一个参数就是包含时间信息的文本,第二个参数是时间戳。省略时,解析取当前时间。
测试代码
<?php
$date = "first day of this month";
echo date('Y-m-d H:i:s', strtotime($date));
也可以使用在线的 strtotime 测试: strtotime_PHP在线工具
例子
现在时间: strtotime('now')
2018-04-11 02:22:24
本月第一天: strtotime('first day of this month')
2018-04-01 02:22:24
本月最后一天: strtotime('last day of this month')
2018-04-30 02:22:24
三天前: strtotime('-3 days')
2018-04-08 02:22:24
今天零点: strtotime('today')
2018-04-11 00:00:00
每周的第一天是星期几?
关于星期的处理,需要注意中国大陆使用 ISO 8601 规定的,以周一为每周的第一天,但美洲地区通常以周日为一周的开始。 星期中的日子 - 维基百科,自由的百科全书 PHP 中实测以周一为一周的开始,但曾经也遇到过有服务器从周日开始的情况,可能和 locale 有关。
这周一: strtotime('monday this week')
2018-04-09 00:00:00
下周一: strtotime('monday +1 week')
2018-04-23 00:00:00
上周一: strtotime('monday -1 week')
2018-04-09 00:00:00
除了解析日期,还可以强行设定时间,只要在字符串的最后追加时间即可:
今天的23点: strtotime('today 23:00:00')
2018-04-11 23:00:00
注意事项
需要控制使用量,它的灵活性带来了较大的性能开销。
文章评论:做一头严肃的大叫驴
根据过去的经验得出,大多数评论是毫无意义的灌水,还有一小部分内容是针对文章的补充和纠错。如果你有建议请邮件联系。