获取可分析的时区
Get Parseable Timezone
我正在使用Momentjs
和Momentjs Timezone来处理日期/时区。
我正在尝试让一个日期由特定时区的用户输入,并将其转换为他们自己时区的本地时间。 看起来 Moment 的时区库不支持用于设置时区的new Date().getTimezoneOffset()
格式。
function calculateLocalTime(e) {
var currentTz = new Date().getTimezoneOffset(),
fromDate = moment.tz(this.value, 'GMT'),
toDate = fromDate.tz(currentTz);
$('to-time').val(toDate.format(dateFormat));
}
我也尝试从正常的Date
对象中提取三个字母的时区,但这似乎也不被支持。
function calculateLocalTime(e) {
var currentTz = new Date().toString().split(' ').pop().replace(/'(/gi, '').replace(/')/gi, ''),
fromDate = moment.tz(this.value, 'GMT'),
toDate = fromDate.tz(currentTz);
$('to-time').val(toDate.format(dateFormat));
}
关于我应该如何使用 Moment 执行此操作的任何想法?
时刻时区用于处理来自 IANA TZ 数据库的标准标识符,例如 America/Los_Angeles
。
时刻.js 支持固定偏移区,独立于时刻时区,使用 zone
函数。
var m = moment();
// All of the following are equivalent
m.zone(480); // minutes east of UTC, just like Date.getTimezoneOffset()
m.zone(8); // hours east of UTC
m.zone("-08:00"); // hh:mm west of UTC (ISO 8601)
但是,由于您说要转换为用户的本地时区,因此无需显式操作它。 只需使用local
功能即可。
下面是一个完整的示例,从明确的 IANA 时区转换为用户的本地时区:
// Start at noon, Christmas Day, on Christmas Island (in the Indian Ocean)
var m = moment.tz('2014-12-25 12:00:00', 'Indian/Christmas');
// Convert to whatever the user's local time zone may be
m.local();
// Format it as a localized string for display
var s = m.format('llll');
对我来说,在美国太平洋时区运行这个,我得到"Wed, Dec 24, 2014 9:00 PM"
. 结果将根据代码的运行位置而有所不同。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 下拉选择可自动更改第二个下拉选择
- knockoutjs可观察数组
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 手风琴可点击并悬停
- 将纯文本URL转换为可单击链接
- 一点javascript元编程&可链接的设置器
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 分析特定区域设置(而不是时区!)中的日期字符串
- 如何在谷歌分析中跟踪谷歌可视化图表事件
- 分析本地时区中的JavaScript日期
- 获取可分析的时区
- 分析具有不同时区的字符串日期
- 时区偏移的 D3 日期分析问题
- Google Analytics(分析)跟踪 - 可扩展参数 (utme) 未显示在请求_utm.gif
- FullCalendar可在设置为本地时区时调整时区,但不适用于欧洲/雅典
- 使用本地时区分析YYYY-MM-DD日期
- 使用谷歌分析功能的可区分事件跟踪