【发布时间】:2020-06-15 21:12:40
【问题描述】:
我目前正在开发一个可在各种设备(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>");
Windows 笔记本电脑在 Chrome 中的输出:
Tue Jan 01 2019 01:00:00 GMT+0100 (Midden-Europese standaardtijd)
Apple iPhone 在 Safari 中的输出:
Tue Jan 01 2019 02:00:00 GMT+0100 (CET)
【问题讨论】:
-
你应该使用 yyyy/MM/dd 格式,然后它们就相等了。
-
感谢您的快速回复!不幸的是,这不起作用。也许我做错了什么.....
const search = '-'; const replaceWith = '/'; var phpValue = "<?php echo $tijdCountdownPauze; ?>"; var phpValueReplaced = phpValue.split(search).join(replaceWith); var phpValueSplitted = phpValueReplaced.split(" "); var phpvalueCombine = phpValueSplitted[0] + "T" + phpValueSplitted[1]; alert(phpvalueCombine); var countDownDate = new Date(phpvalueCombine); document.write(phpValueOK); -
@DevanshBaldwa 感谢您的大写:还有一些需要修复,啊啊。你可以看到我的后续编辑。
-
@sebastiaan 一个浏览器将 01:00:00 读取为本地时间(对您而言是 GMT+1),另一个浏览器将其读取为 GMT+0 时间,然后显示它是当地时间(GMT+1 为您)。主要问题是您没有明确定义解释日期的原始时区。
标签: javascript ios google-chrome time safari