[英]PHP strtotime() "first monday february" returns second monday if february 1st is a monday
我正在研究一个计算假期的 PHP 函数:
function holidays($country = 1, $timespan_start = 0, $timespan_end = 0)
假期作为数组中的时间戳返回。
由于我必须计算像二月的第一个星期一这样的日期,我尝试了strtotime("first monday february $year")
并且我发现这不适用于 2010 年,因为 02/01/2010 是星期一 - 我得到2 月 8 日。
这个错误实际上是在更改日志中提到的:在 PHP 5 5.2.7 之前,请求一个给定的工作日发生在一个月的第一天,而该工作日是该月的第一天会错误地将一周添加到返回的时间戳中。 这已在 5.2.7 及更高版本中得到纠正。
但我使用的是 PHP 5.3.8。 为什么我会遇到这个错误?
根据您的 PHP 版本,'of' 语句可能有效,也可能无效。 作为另一种解决方案,请尝试:
echo date('Ym-d',strtotime('monday February 2010'));
将在 2010 年 2 月的第一个星期一返回。也适用于所有日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.