我知道如何获得时区偏移,但我需要的是检测“美国/纽约”之类内容的能力。JavaScript能做到吗,还是我只能根据偏移量来估计?
当前回答
这得到时区代码(例如,GMT)在旧的javascript(我使用谷歌应用程序脚本与旧引擎):
function getTimezoneName() {
return new Date().toString().get(/\((.+)\)/);
}
我把这个放在这里,以防有人需要。
其他回答
console.log(新日期()。toLocaleDateString(undefined, {day:'2-digit',timeZoneName: 'long'}).substring(4).match(/\b(\w)/g).join("))
国际化API支持获取用户时区,当前所有浏览器都支持该API。
控制台日志(Intl DateTimeFormat resolvedOptions()()。timeZone)
请记住,在一些支持国际化API的旧浏览器版本上,timeZone属性被设置为未定义,而不是用户的时区字符串。据我所知,在撰写本文时(2017年7月),除IE11之外的所有当前浏览器都将以字符串形式返回用户时区。
在javascript中,Date.getTimezoneOffset()方法返回当前地区相对于UTC的时区偏移,单位为分钟。
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
时刻时区将是一个有用的工具。 http://momentjs.com/timezone/
在时区之间转换日期
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00
如果你已经在使用Moment.js,你可以猜出时区名称:
moment.tz.guess(); // eg. "America/New York"
要检测像“America/New York.”这样的内容,可以使用Luxon库中的新LocalZone()。
import { LocalZone } from 'luxon';
const zoneName = new LocalZone().name;
推荐文章
- 无法读取未定义的属性“msie”- jQuery工具
- 我的蛋蛋怎么不见了?
- JavaScript中的排列?
- JavaScript中有睡眠/暂停/等待功能吗?
- 如何禁用文本选择使用jQuery?
- 如何停止事件冒泡复选框点击
- 向对象数组添加属性
- 如何在Redux应用程序中动态加载代码分割的减速器?
- Angular 2+和debounce
- 检测涡旋方向
- 在react native中隐藏/显示组件
- 如何在Django中设置时区
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- console.log()和console.debug()的区别?
- Java SimpleDateFormat("yyyy-MM-dd' t ' hh:mm:ss' z '")给出的时区为IST