PHP中日期返回的星期几错误
我从PHP中日期返回的星期几错误,php,date,strtotime,Php,Date,Strtotime,我从date\u parse中得到了以下数据: $date_array['year'] = '2015'; $date_array['month'] = '4'; $date_array['day'] = '25'; 我正在尝试获取此特定日期的星期几: echo date('w',strtotime($date_array['day'] . " " . $date_array['month'] . " " . $date_array['year'])); 这将返回4,这是星期四的代码,而那天
date\u parse
中得到了以下数据:
$date_array['year'] = '2015';
$date_array['month'] = '4';
$date_array['day'] = '25';
我正在尝试获取此特定日期的星期几:
echo date('w',strtotime($date_array['day'] . " " . $date_array['month'] . " " . $date_array['year']));
这将返回4
,这是星期四的代码,而那天是星期六,所以我希望是6
。我还尝试使用strotime
对元素重新排序,认为这可能与我的时区设置有关,但结果仍然是4
。您可以这样使用:
$d = $date_array;
date("w", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
我使用mktime()
,因为它可以完美地工作,因为您将获得正确的时间戳。此代码打印6
,这是正确的日期
请注意,由于PHP5.1.0,您可以使用L
参数以更符合逻辑的方式获取从1(星期一)到7(星期日)的天数
date("L", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
更多信息:您可以通过以下方式使用:
$d = $date_array;
date("w", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
我使用mktime()
,因为它可以完美地工作,因为您将获得正确的时间戳。此代码打印6
,这是正确的日期
请注意,由于PHP5.1.0,您可以使用L
参数以更符合逻辑的方式获取从1(星期一)到7(星期日)的天数
date("L", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
更多信息:查看以下代码:
$date_array = array();
$date_array['year'] = '2015';
$date_array['month'] = '04';
$date_array['day'] = '25';
$d = $date_array;
echo date('w-L-D',strtotime($date_array['year']."-".$date_array['month'] . "-" . $date_array['day']));//output: 6-0-Sat
有关格式的更多详细信息,请访问以下代码:
$date_array = array();
$date_array['year'] = '2015';
$date_array['month'] = '04';
$date_array['day'] = '25';
$d = $date_array;
echo date('w-L-D',strtotime($date_array['year']."-".$date_array['month'] . "-" . $date_array['day']));//output: 6-0-Sat
有关格式的更多详细信息,请访问这里的问题是无法识别您使用的DD-MM-YYYY
;您可以使用国际格式(YYYY-MM-DD
),或欧洲格式(DD-MM-YYYY
)或美国格式(MM/DD/YYYY
)
例如:
echo date('w', strtotime("$date_array[year]-$date_array[month]-$date_array[day]"));
是6
,这是星期六,是正确的。这里的问题是无法识别您使用的DD-MM-YYYY
;您可以使用国际格式(YYYY-MM-DD
),或欧洲格式(DD-MM-YYYY
)或美国格式(MM/DD/YYYY
)
例如:
echo date('w', strtotime("$date_array[year]-$date_array[month]-$date_array[day]"));
是
6
,这是周六,是正确的。值得一看支持的strotime
。2015年4月25日是周六…@JanChimiak是的,我会更新这个问题。有趣的是,一些在线日历弄错了。。。比较一下,我实际上仔细检查了我的挂历…@JanChimiak不,他们都是对的,只是其中一个星期天开始,另一个星期一开始:)值得一看受支持的strotimestrotime
。2015年4月25日是星期六…@JanChimiak是的,对xD我会更新这个问题。有趣的是,一些在线日历弄错了。。。比较一下,我实际上仔细检查了我的挂历…@JanChimiak不,他们都是对的,只是其中一个星期天开始,另一个星期一开始:)我决定接受这个答案,因为它也解释了为什么事情不起作用。其他答案也都投了赞成票。好的,但我推荐mktime()
,因为你避免了这种错误(这是我的解释),我决定接受这个答案,因为它也解释了事情不起作用的原因。其他答案也都投了赞成票。好的,但我推荐mktime()
,因为这样可以避免此类错误(这是我的解释)