使用angular获取时区(仅时区)



我不确定这是否可能,但我想使用Angular获取PC的时区。我只需要时区,因为我需要将其格式化为('+H:MM')。

我知道Angular只以一种方式('+HHMM')格式化它,所以我想存储这个时区,并放入一个字符串,然后我可以稍后操作。

此外,如果可能的话,我不想使用插件和/或库。

我建议您使用Momentjs:

http://momentjs.com

Momentjs格式化

var from = new Date();
var date = moment(from).format('Z'); //ZZ
alert(date);

Fiddle

或者,您可以在Date:上执行正则表达式

var from = new Date();
var res = from.toString().match(/[+,-](d{4})s/g);
alert(res);

Fiddle

但我不确定它是否非常健壮。

我希望它能有所帮助。

这个怎么样?

let timeZone;
if (typeof Intl === 'object' && typeof Intl.DateTimeFormat === 'function') {
  timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
  console.log({ timeZone });
}

可能是一个迟到的答案,但如果这对其他人有帮助,只是为了以防万一。即时时区包允许您在本地时区进行猜测,使用安装时刻时区

npm i时刻时区--保存

import moment from 'moment-timezone'
const timezone = moment.tz(moment.tz.guess()).format('z');
console.log(timezone); // eg: PST

这是可以的,但要注意:

  1. 这只是一个猜测。它可能猜错了
  2. 如果它猜错了,缩写仍然有可能是正确的,因为许多类似的时区都会使用相同的缩写,比如欧洲/巴黎和欧洲/柏林都使用CET和CEST
  3. 然而,没有任何保证。如果它猜错了,你可能出示错误的缩写

如果您需要上网时间,请使用此网站

http://www.timeapi.org/utc/now.json

相关内容

  • 没有找到相关文章