php - Bonkers PHP 几个月?

标签 php date

这是一个基本的概念验证脚本:

<?php
for($i = 1; $i < 13; $i++)
{
    echo 'Using ' . $i . ' | ';
    echo date('F', mktime(0,0,0,$i)) . " | ";
    echo date('F', strtotime('2011-' . $i . '-01')) . "<br />";
}

我得到的输出是:

Using 1 | January | January
Using 2 | March | February
Using 3 | March | March
Using 4 | April | April
Using 5 | May | May
Using 6 | June | June
Using 7 | July | July
Using 8 | August | August
Using 9 | September | September
Using 10 | October | October
Using 11 | November | November
Using 12 | December | December

二月发生了什么??

这让我很难受,因为它刚刚停止显示二月并开始显示三月。

最佳答案

您正在使用 mktime()不正确。

int mktime ([ int $hour = date("H") 
            [, int $minute = date("i") 
            [, int $second = date("s") 
            [, int $month = date("n") 
            [, int $day = date("j")  <------------ here 
            [, int $year = date("Y") <------------ and here
            [, int $is_dst = -1 ]]]]]]] )

如果您不指定 $day$year,它们将默认为 今天的日期

今天是30号,二月不存在。

这会起作用:

echo date('F', mktime(0,0,0,$i,1,2011)) . " | "; 

关于php - Bonkers PHP 几个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488979/

相关文章:

php - MySQL查询优化

如果小时数小于 10,JavaScript 会在小时数之前显示零

MySQL If Date 语句?

PHP 不会从 MySQL 中删除

PHPExcel - 将 4 个 CSV 文件读取到一个带有 4 个电子表格的工作簿中

php - 如何找出5天前的日期?

php - 从 Mailgun 表单 Post PHP 中检索附件

javascript - 在 Javascript 中将日期字符串中的月份与日期交换

MySQL - 如何查找日期介于开始日期和结束日期之间的记录

javascript - 将日期过滤为默认 JavaScript 格式