JavaScript在两台设备(Apple Windows)上的显示时间不同
我目前正在开发一个可以在各种设备(苹果、Windows、智能手机、平板电脑、笔记本电脑)上运行的网站。从我的后端PHP脚本,字符串格式的DateTimeValue被发送到我的JavaScript。当我在笔记本电脑(Windows Chrome)上运行此代码时,我得到的时间与在智能手机(Apple-Safari)上运行此代码时不同。在我的智能手机上,它显示了一个多小时。如何修复此问题以获得相同的值以在后续代码中处理?如果可能的话,我想保持PHP的原样 PHP字符串值:JavaScript在两台设备(Apple Windows)上的显示时间不同,javascript,ios,google-chrome,time,safari,Javascript,Ios,Google Chrome,Time,Safari,我目前正在开发一个可以在各种设备(苹果、Windows、智能手机、平板电脑、笔记本电脑)上运行的网站。从我的后端PHP脚本,字符串格式的DateTimeValue被发送到我的JavaScript。当我在笔记本电脑(Windows Chrome)上运行此代码时,我得到的时间与在智能手机(Apple-Safari)上运行此代码时不同。在我的智能手机上,它显示了一个多小时。如何修复此问题以获得相同的值以在后续代码中处理?如果可能的话,我想保持PHP的原样 PHP字符串值: 2019-01-01 01:
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>");
苹果iPhone在Safari中的输出:
Tue Jan 01 2019 02:00:00 GMT+0100 (CET)
将Z
(或)添加到时间字符串中
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "Z"
// or
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "+00:00"
您应该使用yyyy/MM/dd格式,这样它们就相等了。感谢您的快速回复!不幸的是,这不起作用。也许我做错了什么<代码>常量搜索='-';常量replaceWith='/';var phpValue=“”;var phpValueReplaced=phpValue.split(search).join(replaceWith);var phpValueSplitted=phpvaluereplacemented.split(“”);var phpvalueCombine=phpValueSplitted[0]+“T”+phpValueSplitted[1];警报(phpvalueCombine);var countDownDate=新日期(phpvalueCombine);文件写入(phpValueOK)代码>@DevanshBaldwa感谢您的资本化:还有一些问题需要解决,啊。您可以看到我随后的编辑。@sebastiaan一个浏览器读取01:00:00作为本地时间(您为GMT+1),另一个浏览器读取它作为GMT+0时间,然后显示为本地时间(您为GMT+1)。主要的问题是你没有明确定义解释日期的原始时区。可能的重复:谢谢,但我几乎可以肯定这个问题应该作为另一个问题的重复而不是回答它。@Cœur同意。但是如果没有足够的声誉,我是做不到的。我相信你可以在声誉很早的时候提出一个问题来结束。
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "Z"
// or
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "+00:00"