ES6 - 将日期字符串输出为 ISO 格式,没有任何库



几乎像Node.js - 如何在UTC格式格式化日期字符串,如以下已经是我想要的格式(它们都是(:

var x = new Date();
console.log(x);
var u = x.toISOString();
console.log(u);

但是,输出采用UTC时区和格式(如尾随Z所示(,而

我只需要它在本地时区。怎么做?

我已经尝试过.toLocaleDateString()toLocaleTimeString()toLocaleFormat("%Y-%m-%d %H:%M:%S")toString("yyyyMMddHHmmss")等,等等,但没有一个有效。 请帮忙

。 谢谢。

像这样的东西?

function formatLocal(d) {
  // tzo is minutes, and signed opposite of the
  // usual -06:00 or +03:00 format you're used to
  const tzo = d.getTimezoneOffset()
  // get hours offset
  let tzH = Math.floor(Math.abs(tzo / 60))
  // get minutes offset
  let tzM = tzo % 60
  // pad and negate accordingly
  tzH = (tzH < 10) ? `0${tzH}` : tzH
  tzH = (tzo > 0)  ? `-${tzH}` : tzH
  tzM = (tzM < 10) ? `0${tzM}` : tzM
  // replace Z with timezone offset
  return d.toISOString().replace('Z', `${tzH}:${tzM}`)
}

最新更新