首页 > 解决方案 > 基于PHP中的日期字符串获取时间间隔

问题描述

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

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

如果我指定“2018 年 7 月 3 日”或“2018 年 7 月 3 日”或“2018 年 7 月 3 日”,我想要一个 2018 年 7 月 3 日 00:00:00 的下限时间戳和一个上限时间戳2018-07-03 23:59:59。

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

标签: phpdatetimestrtotime

解决方案


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,所以这些很简单。


推荐阅读