神奇的 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

注意事项

需要控制使用量,它的灵活性带来了较大的性能开销。

文章评论:做一头严肃的大叫驴

根据过去的经验得出,大多数评论是毫无意义的灌水,还有一小部分内容是针对文章的补充和纠错。如果你有建议请邮件联系,我将视反馈的重要程度和自己当月的经济水平发红包奖励。当然,也不一定会回复,这取决于邮件的内容质量。