首页 > 解决方案 > JavaScript 显示的时间在两台设备上不同(Apple-Windows)

问题描述

我目前正在开发一个在各种设备(Apple、Windows、智能手机、平板电脑、笔记本电脑)上运行的网站。从我的后端 PHP 脚本,字符串格式的日期时间值被发送到我的 JavaScript。当我在笔记本电脑(Windows-Chrome)上运行此代码时,我得到的时间与我在智能手机(Apple - Safari)上运行它的时间不同。在我的智能手机上显示一个小时太多了。如何解决此问题以获得相同的值以在进一步的代码中处理?如果可能的话,我想保持 PHP 的原样。

PHP 字符串值:

2019-01-01 01:00:00

在我的网页上,我测试了这段代码,

var phpValue = "<?php echo $tijdCountdownPauze; ?>";
var phpValueSplitted = phpValue.split(" "); 
var phpvalueCombine = phpValueSplitted[0] + "T" + phpValueSplitted[1];
var phpValueCombinedDate = new Date(phpvalueCombine);
document.write(phpValueCombinedDate);
document.write("<br>");

Chrome 中 Windows 笔记本电脑的输出:

Tue Jan 01 2019 01:00:00 GMT+0100 (Midden-Europese standaardtijd)

苹果 iPhone 在 Safari 中的输出:

Tue Jan 01 2019 02:00:00 GMT+0100 (CET)

标签: javascriptiosgoogle-chrometimesafari

解决方案


Z(或任何其他时区)添加到时间字符串。

phpValueSplitted[0] + "T" + phpValueSplitted[1] + "Z"
// or
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "+00:00"

推荐阅读