我有一个构造HTML页面的JavaScript代码。 该页面有一个带有日期列的表。所需的日期格式为mm / dd / yyyy hh:mi:ss AM
在Javascript中,我从下面的代码生成这种格式。
预期输出为2019年7月7日 6:00:00 PM
当我在印度的计算机上运行javascript代码时,在我的所在地,我得到了预期的结果。 但是当客户运行它时,在他在美国的系统上,他发现时间有所偏移。
它看起来像下面在Firefox中提到的那样。
6/06/2019 2:00:00 04:00 PM
这可能是什么原因?而我该如何解决呢?
'<span>"06-06-2019 1:00:00 CDT PM".split('-')[1]+'/'+"06-06-2019 1:00:00 CDT PM".split('-')[0]+'/'+"06-06-2019 1:00:00 CDT PM".substr(6, 13).trim()+' '+"06-06-2019 1:00:00 CDT PM".substr(23)</span>'
答案 0 :(得分:0)
简单的答案是 TimeZone 差异。每个人都有自己的浏览器和客户端上的Javascript工作,因此这是JavaScript的明显特征,但默认情况下它将显示本地日期时间。
您只需设置一个时区偏移值
即可设置该值Date.prototype.getUTCLocalDate = function () {
var target = new Date(this.valueOf());
var offset = target.getTimezoneOffset();
var year = target.getUTCFullYear();
var month = target.getUTCMonth();
var date = target.getUTCDate();
var hour = target.getUTCHours();
var minutes = target.getUTCMinutes();
var seconds = target.getUTCSeconds();
return new Date(Date.UTC(year , month , date , hour , minutes + offset, seconds ));
};
或者您可以通过执行rest查询来获取服务器时区的偏移量,并自行设置偏移量以在任何地方显示唯一的时间。