【问题标题】:Discrepancy between PHP and JS's timestampsPHP 和 JS 的时间戳之间的差异
【发布时间】:2012-12-14 03:20:21
【问题描述】:

这太疯狂了。我该如何处理?

在 Chrome 控制台中:

new Date(2013,0,1).getTime() // 1st of Jan 2013
> 1356991200000
------------
new Date(2013,0,1).getTime()== 1356991200000
> true

现在在 PHP 中取该值:

<?php 
    die(date('l, j F Y'), 1356991200000 / 1000); // cut some ms
?>

我收到Monday, 31 December 2012

这与格林威治标准时间有关吗?我该如何解决这个问题?

【问题讨论】:

  • 我与恐龙和龙一起工作,他们无法处理 php 升级
  • 您受限于哪个特定版本?没有 DateTimeZone 意味着你被困在 5.1 或 5.0...
  • 不,我只是在比较函数中直白地增加了 12 个小时。他们现在应该考虑到像这样的时移。

标签: php javascript unix date timestamp


【解决方案1】:

Javascript 使用客户端的时区,而 PHP 使用服务器的时区。

JShttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

var x = new Date()
var currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60

PHPhttp://php.net/manual/en/function.date-default-timezone-get.php

<?php
echo date_default_timezone_get();

【讨论】:

  • 没错,但在问题中他给了PHP一个特定的时间戳,所以它不是特定于服务器时间的。
  • @kojiro 但是服务器根据设置的时区格式化时间。不同的时区,不同的日期。
【解决方案2】:

使用任何一个(我会推荐服务器端)。您无法传达两者将同步的信息。一个取决于您的服务器,另一个取决于用户的计算机。

如果您需要显示某些内容,请使用相对时间并在页面刷新后更新客户端时间...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2019-03-09
    • 2014-06-09
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    相关资源
    最近更新 更多