Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP标准时间不包括新年';情人节。。。假期怎么算?_Php_Date_Datetime_Strtotime - Fatal编程技术网

PHP标准时间不包括新年';情人节。。。假期怎么算?

PHP标准时间不包括新年';情人节。。。假期怎么算?,php,date,datetime,strtotime,Php,Date,Datetime,Strtotime,看起来PHP的strotime函数从结果中排除了新年。有没有办法强迫strotime包含它?其他假日,如劳动节,似乎没有这个问题(参见下面的第三个代码示例) 谢谢 // The 1st Wed in Jan 2020 falls on New Year's Day // But we get: "Wed 2020-01-08" (INCORRECT... it should return "Wed 2020-01-01") echo date("

看起来PHP的strotime函数从结果中排除了新年。有没有办法强迫strotime包含它?其他假日,如劳动节,似乎没有这个问题(参见下面的第三个代码示例)

谢谢

// The 1st Wed in Jan 2020 falls on New Year's Day
// But we get: "Wed 2020-01-08" (INCORRECT... it should return "Wed 2020-01-01")
echo date("D Y-m-d", strtotime("First Wednesday " . "2020-01"));

// However, asking for the 1st Thu in Jan 2020 returns the correct result: "Thu 2020-01-02"
echo date("D Y-m-d", strtotime("First Thursday " . "2020-01"));

// Even asking for the 1st Mon in Sep 2020, which is Labor Day returns the correct result: "Mon 2020-09-07"
echo date("D Y-m-d", strtotime("First Monday " . "2020-09"));
您应该使用
“2020-01年第一个星期三”
(注意

Per:

当一周中的当前日期相同时,请遵守以下备注 作为日期/时间字符串中使用的星期几:

[……]

“序号日名”确实会提前到另一天。(例如,“2008年7月23日第一个星期三”指“2008-07-30”)

[……]

的序号dayname”不会提前到另一天。(例如:“2008年7月的第一个星期二”表示“2008-07-01”)

您应该使用
“2020-01年第一个星期三”
(注意

Per:

当一周中的当前日期相同时,请遵守以下备注 作为日期/时间字符串中使用的星期几:

[……]

“序号日名”确实会提前到另一天。(例如,“2008年7月23日第一个星期三”指“2008-07-30”)

[……]

的序号dayname”不会提前到另一天。(例如:“2008年7月的第一个星期二”表示“2008-07-01”)

你可以试试这个

echo date("D Y-m-d", strtotime("First Wednesday of January 2020"));
// Wed 2020-01-01
你可以试试这个

echo date("D Y-m-d", strtotime("First Wednesday of January 2020"));
// Wed 2020-01-01

谢谢我在文件中完全没有提到这一点。1月1日在不使用“of”的情况下得到特殊处理似乎仍然很奇怪,但我会接受它!再次感谢。@bjones1831这是因为今年(2020年)1月1日是星期三。基本上就像说“2020年1月1日后的第一个星期三”,而不是“2020年1月1日后的第一个星期三”。因此,只有当指定的一周中的某一天(左部分)与引用的某一天(右部分)完全相等时,它才会有所不同。明白了。我刚刚测试了五一假期(5月1日),它有相同的错误,没有“of”。。。。谢谢你的澄清!谢谢我在文件中完全没有提到这一点。1月1日在不使用“of”的情况下得到特殊处理似乎仍然很奇怪,但我会接受它!再次感谢。@bjones1831这是因为今年(2020年)1月1日是星期三。基本上就像说“2020年1月1日后的第一个星期三”,而不是“2020年1月1日后的第一个星期三”。因此,只有当指定的一周中的某一天(左部分)与引用的某一天(右部分)完全相等时,它才会有所不同。明白了。我刚刚测试了五一假期(5月1日),它有相同的错误,没有“of”。。。。谢谢你的澄清!