根据PHP中的日期字符串获取时间间隔

时间:2018-06-07 20:14:26

标签: php date time strtotime

使用strtotime(),我可以得到一个特定的时间戳,但如果我想根据字符串的粒度获得上限和下限怎么办?

例如,如果我指定“July,2018”或“July”或“7/2018”,我希望下限时间戳为2018-07-01 00:00:00,并且上限时间戳为2018-07-31 23:59:59。

如果我指定“2018年7月3日”或“2018-07-03”或“7/3/2018”,我希望下限时间戳为2018-07-03 00:00:00,并且上限时间戳2018-07-03 23:59:59。

如果我指定“2018”,我希望下限时间戳为2018-01-01 00:00:00,上限时间戳为2018-12-31 23:59:59。

1 个答案:

答案 0 :(得分:2)

PHP datetime可以解析文档的第一天和最后一天,文档:http://php.net/manual/en/datetime.formats.relative.php

strtotime('first day of July, 2018');
strtotime('last day of July, 2018');

我不知道你是否会找到一个现有的解决方案来完全匹配你正在寻找的东西,但你应该能够使用相对字符串的灵活性来编写你自己的逻辑来实现这一点。

今年,它总是XXXX-01-01 00:00:00到XXXX-12-31 23:59:59,对于特定日期,它总是XXXX-XX-XX 00: 00:00到XXXX-XX-XX 23:59:59,所以那些很简单。