PHP以此日期格式获取N日

时间:2014-08-31 07:43:49

标签: php

$myDate = "30-Aug-2014";
$which_day = date('N',$myDate);
echo "Which Day > " . $which_day;

回归是

Which Day > 4

但结果应该是6,因为它是星期六:)如何更改以使我的代码返回6这是实际的答案。我在数据库中的日期格式不是unix时间,并且是varchar格式的

d-M-Y

2 个答案:

答案 0 :(得分:1)

您必须先使用strtotime()将其转换为时间戳,然后将其输入date()函数。 〔实施例:

$myDate = "30-Aug-2014";
$which_day = date('N', strtotime($myDate));
                        // ^
echo "Which Day > " . $which_day; // Which Day > 6

或者您也可以使用DateTime

$myDate = "30-Aug-2014";
$which_day = DateTime::createFromFormat('d-M-Y', $myDate);
echo "Which Day > " . $which_day->format('N');

答案 1 :(得分:1)

使用strtotime()和date():

$myDate = "30-Aug-2014";
$which_day = date('N',strtotime($myDate));
echo "Which Day > " . $which_day;