PHP日期输出错误的月份

时间:2011-02-12 15:50:27

标签: php date

如果我在网址中传递?month=$04并回显$date,我会继续收到1月而不是应该是(4月)。如果我回应$month我得到04这是正确的。这是我一直在使用的代码:

if (isset($_GET['month']) && $_GET['month']!='') {
        $month = $_GET['month'];
        $date = date('F', $month);
}

echo $date;

对于我的生活,我无法弄清楚为什么它输出不正确。任何帮助非常感谢。

3 个答案:

答案 0 :(得分:5)

看看你在这做什么:

date('F', '04');

date()的第二个参数是一个时间戳,从1970年1月1日开始。所以你要做的是指定1970年1月1日,午夜00:00:04。

您可以通过以下方式实现目标:像这样:

$timestamp = strtotime ("2000-$month-01"); // 2000-04-01 will always be April
echo date('F', $timestamp);

答案 1 :(得分:1)

这是因为您使用错误参数的date()。 $ month必须是Unix时间戳。您可以考虑使用mk_time()函数。

答案 2 :(得分:0)

您需要一个实际的日期。尝试类似的东西 echo date("F", mktime(0, 0, 0, 4, 0, 0));