我有以下数据来自date_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
。我也尝试重新排序strtotime
的元素,认为它可能与我的时区设置有关,但我仍然得到4
作为结果。
答案 0 :(得分:2)
您可以这样使用:
$d = $date_array;
date("w", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
我使用mktime()
,因为它可以完美地运行,因为您可以获得正确的时间戳。此代码会打印6
,这是正确的一天。
请注意,自PHP 5.1.0开始,您可以使用L
参数以更加逻辑的方式获取从1(星期一)到7(星期日)的日期。
date("L", mktime(0, 0, 0, $d['month'], $d['day'], $d['year']));
答案 1 :(得分:2)
此处的问题是strtotime()
无法识别您使用的format 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
,这是星期六并且是正确的。
答案 2 :(得分:1)
查看以下代码:
$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
有关格式的更多详细信息,请PHP: date - Manual