strtotime返回奇怪的日期

PHP: strtotime revered return strange date?

本文关键字:日期 返回 strtotime      更新时间:2023-09-26

我使用php strtotime和mysql datetime为一个简单的倒计时到某个日期。

我也用jQuery来倒计时。

我的jquery strtotime时间是这样的:1443661380000

如果我运行我的jquery倒计时没有任何php,它工作得很好,计数正确

然而,当我使用mysql datetime和php strtotime像这样:$long = strtotime("$fes_events_date");我的jquery倒计时停止工作。

所以我试图扭转jquery的strtotime是1443661380000,所以我可以看到它的样子,以防我错过了一些东西在我的php strtotime

所以我这样做了:

    $hin = date("Y-m-d H:i:s", 1443661380000);
echo $hin;

的输出是一些奇怪的东西,如下所示:

47717-10-22 18:00:00

所以我的问题是,我怎么能转换我的datetime mysql使用php strtotime,所以我得到相同的输出,以使我的jquery倒计时工作?

尝试改变,

$hin = date("Y-m-d H:i:s", 1443661380000);

$mil=1443661380000;
$seconds = $mil / 1000;
$hin = date("Y-m-d H:i:s", $seconds);

unix时间戳,即date函数的第二个参数,是从1970年1月1日开始的秒数。

由于历史的原因,javascript时间戳是自unix纪元以来的毫秒数。PHP strToTime函数无法识别这一点,也无法发挥它的魔力。您需要手动将毫秒转换为秒。

$hin = date("Y-m-d H:i:s", (1443661380000/1000));
echo $hin;

知道测量UNIX/Epoch Time通常以两种方式之一完成,从January, 1 1970开始以秒或毫秒为单位。

在我看来,您的时间以毫秒为单位,而您试图使用的函数将其转换为秒,因此您的误差为1000倍。

试着把你的时间减去1000,然后把它传入转换器。

1000ms/1000 = 1s
1443661380000ms / 1000 = 144366138s
144366138s -> Date -> GMT: Thu, 01 Oct 2015 01:03:00