PHP:两个相同的日期语句,但其中一个星期的某一天是错误的

PHP:两个相同的日期语句,但其中一个星期的某一天是错误的,php,Php,我编写了以下代码: if(!is_null($customDate)){ $referenceDate = strtotime($customDate); $toDay = date("N", $referenceDate); echo("/".$referenceDate."/".$toDay."/"); } else{ $referenceDate = strtotime(date("d:m:y")); $toDay = date("N");

我编写了以下代码:

if(!is_null($customDate)){
    $referenceDate = strtotime($customDate);
    $toDay = date("N", $referenceDate);
    echo("/".$referenceDate."/".$toDay."/");
}
else{
    $referenceDate = strtotime(date("d:m:y"));
    $toDay = date("N");
    echo("/".$referenceDate."/".$toDay."/");
}
如果我提供$customDate,如:

功能名称(“24:07:17”)

它打印出这个:

/1500941237/2/

一张邮戳(我猜)和两张作为星期二

如果我不提供$customDate并调用函数为:

函数名称()

我明白了:

/1500941237/1/

这又是一张邮戳(我猜),一周中的一天是星期一

第二个是正确的,是24号,星期一

我对PHP非常陌生,所以我几乎100%确定在我所做的日期操作方面存在一些细微差别,但我不确定它是什么

两枚相同的邮戳如何产生不同的星期几

使用默认配置在Windows 10上的WAMP服务器上运行它

全功能:

function nextDate($customDate=null){

    $referenceDate;
    $toDay;


    if(!is_null($customDate)){
        $referenceDate = strtotime($customDate);
        $toDay = date("N", $referenceDate);
        echo("/".$referenceDate."/".$toDay."/");
    }
    else{
        $referenceDate = strtotime(date("d:m:y"));
        $toDay = date("N");
        echo("/".$referenceDate."/".$toDay."/");
    }

}
下一天(“24:07:17”);-->给出错误的结果,它说24号是星期二

nextDate();-->给出正确的结果,它说24号是星期一


这是因为
24:07:17
不是有效的日期格式,PHP认为这是一个时间,所以“今天24:07:17”

使用有效的日期格式或将其转换为正确理解的内容
strotime

list($d,$m,$y) = explode(":", "24:07:17");
$referenceDate = strtotime("20{$y}-{$m}-{$d}");

你能给我们看一下处理事后日期的代码吗?@GrumpyCrouton没有事后日期处理,我只是从函数外部调用nextDate()。我已经运行了你的代码在线编辑器,我没有看到任何问题。在这两种情况下都会显示相同的结果。所以它是一个分隔符:“问题还是日|月|年序列?@iAmTheGuy96两者都有<代码>日期(“Y-m-d”,标准时间(“01-03-17”)是2001年3月。我们在计算机中使用Y-M-D有很多原因,谢谢,这就解释了。它现在工作得很好。我不知道D:M:Y和Y-M-D之间有这么大的区别
list($d,$m,$y) = explode(":", "24:07:17");
$referenceDate = strtotime("20{$y}-{$m}-{$d}");