0

我有一个用于处理时间的 php:

[PHP]echo date('Y-m-d H:i:s', $_POST['time']);

然后我有一个 javascript 将时间值发布到 php:

[javascript]var $new_time = Math.round((new Date("2009-09-09T23:15:00")).getTime()/1000);
            $.ajax({
              url:"...",
              data:{time:$new_time},
              type: "post",
              async: false,
              dataType: "html",
              success: function(data,textStatus,jqXHR) {
                     alert(data);   
              }
            });

在警报中,它显示:2009-09-10 01:15:00。嗯,谁能告诉我这是为什么?

4

2 回答 2

2

与大多数其他格式不同,当给定一个ISO 格式的日期字符串时,JavaScript 假定它是 UTC 格式。

var date = new Date("2009-09-09T23:15:00");

console.log(date.toUTCString()); // Wed, 09 Sep 2009 23:15:00 GMT

当 PHP 输出系统本地时区的日期时。

如果您更喜欢使用 UTC/GMT 日期,您可以使用gmdate()

echo gmdate('Y-m-d H:i:s', $_POST['time']);
于 2013-09-11T03:38:59.423 回答
0

Javascript 将使用最终用户的本地计算机时钟,而 PHP 将使用远程服务器的时间和时区设置。尝试创建一个示例页面,在 PHP 中输​​出当前时间和时区偏移,并将其与您所在的计算机进行比较。

于 2013-09-11T03:30:32.607 回答