javascript - 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)
解决方案
将Z
(或任何其他时区)添加到时间字符串。
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "Z"
// or
phpValueSplitted[0] + "T" + phpValueSplitted[1] + "+00:00"
推荐阅读
- flutter - 颤动中具有相同单元格高度的动态交错网格
- bitcoin - 为什么在 bip32 中熵的最大大小是 512 位,而 bip39 是 256 位?
- javascript - 组合 API 不适用于 Nuxt-TS
- c - 尝试在用户定义的函数中操作 char 数组的元素时收到错误消息
- php - 400 错误请求 curl php
- javascript - 如何从 then() 方法的 api 请求中获取数据,以便在函数外部处理数据?
- oauth-2.0 - Peer not authenticated 在保护 API 时观察到,在 localhost 中使用 WSO2 EI Oauth 2.0
- laravel - Flutter 和 Laravel API。上传文件。此路由不支持 GET 方法。支持的方法:POST
- javascript - 在 React 的 .map 迭代中对单个元素使用 onMouseEnter
- oracle - 当我通过 emplid 它运行但是当我通过 Campus_id 它需要无限时间