我不确定这是否可能,但我想使用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
这是可以的,但要注意:
- 这只是一个猜测。它可能猜错了
- 如果它猜错了,缩写仍然有可能是正确的,因为许多类似的时区都会使用相同的缩写,比如欧洲/巴黎和欧洲/柏林都使用CET和CEST
- 然而,没有任何保证。如果它猜错了,你可能出示错误的缩写
如果您需要上网时间,请使用此网站
http://www.timeapi.org/utc/now.json