【问题标题】:Javascript and PHP date formatting gives different valuesJavascript 和 PHP 日期格式给出不同的值
【发布时间】:2017-03-25 14:03:39
【问题描述】:

当我在 php 中这样做时

echo date("Y/m/d",786668400);

我收到1994/12/06

但是当我在 javascript 中这样做时:

console.log(new Date(786668400*1000).getDate() + "." + 
           (new Date(786668400*1000).getMonth() + 1) + "." + 
            new Date(786668400*1000).getFullYear());

我收到5.12.1994

日期打错了,应该是6.12.1994

我在这里做错了什么?

    console.log(new Date(786668400 * 1000).getDate() + "." +
      (new Date(786668400 * 1000).getMonth() + 1) + "." +
      new Date(786668400 * 1000).getFullYear());

【问题讨论】:

  • 5.12.1994 是正确的,因为时间戳指向 Mon 5 Dec 1994 23:00。您的 PHP 代码可能正在应用影响输出的时区偏移量
  • 你分享的代码是纯javascript,不是jquery
  • 我在欧洲中部时间 11:50 获得第六名
  • 在 UTC 时区保存 unix 时间戳并使用 javascript 检查使用哪个时区并将给定日期转换为 UTC。
  • new Date(786668400 * 1000) 相当于 1994-12-05T23:00:00.000Z,任何差异都是由于应用了主机系统时区偏移。

标签: javascript php date time


【解决方案1】:

你的 unix 时间戳给你错误的日期,因为在 UTC 时间它是05.12.1994 23:00:00。在我的本地时区,它是06.12.1994 00:00:00

尝试更改您的时区。

【讨论】:

  • 对,那么我如何让时间变得无关紧要?因为这是出生日期,所以我不需要时间,看起来这就是导致我问题的原因..
  • 您不应该将没有时间部分的日期存储为时间戳,如果来自数据库,则使用 DATE 数据类型
  • 您可以使用 PHP 将您的时区更改为您的本地时区(以确保您没有使用 UTC)。请参阅php.net/manual/en/function.date-default-timezone-set.php
  • @cfreear 抱歉,该部分无法更改
  • 各位投反对票,但我只是给出了给定问题的答案。 笑
猜你喜欢
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多