将'0001-01-01T00:00:00'UTC转换为GMT + 1正在增加58分45秒

时间:2018-04-17 13:40:07

标签: javascript

getLocalTime = function () {
  var utcDateStr = document.getElementById('input').innerHTML ;
  var utcDate = new Date(utcDateStr);
  var offset = new Date().getTimezoneOffset() * 60000;
  var localDate = new Date(utcDate.getTime() - offset);
  var localDateStr = localDate.toLocaleString();
  document.getElementById('output').innerHTML =localDateStr;
};
<p id="input">0001-01-01T00:00:00</p>
<p id="output"></p>
<button onclick="getLocalTime()">Click</button>

Here's a jsFiddle,虽然它只会在您目前处于GMT + 1时区时才有效。

我认为它可能与其他question相似,但我找不到GMT的任何进一步信息。

2 个答案:

答案 0 :(得分:1)

尝试添加&#34; Z&#34;在你的ISO字符串的末尾,像这样"0001-01-01T00:00:00Z",然后做你的事情

new Date("0001-01-01T00:00:00Z") >> Mon Jan 01 0001 01:00:00 GMT+0100 (CET) new Date("0001-01-01T00:00:00") >> Mon Jan 01 0001 00:00:00 GMT+0100 (CET)

答案 1 :(得分:0)

需要1分15秒的调整才能使本地平均时间与1847年12月1日午夜时分发生的GMT(我认为)一致。因此,之前的任何日期都是&#34;关闭&#34;到1分15秒。

来源:https://www.timeanddate.com/time/change/uk/london?year=1847

如果有人有更多来源请发帖,我无法从我粗略的谷歌搜索中找到更多信息!