将时区偏移量“+00:00”转换为分钟
Convert timezone offset "+00:00" to minutes
我有一个函数 returns timezone offset
字符串(如“+03:00”)
我想使用 moment.js 或内置纯文本 javascript 选项
将此字符串转换为分钟偏移量(“+03:00”应变为 180)
我该怎么做?
只需获取偏移小时数,然后将其乘以 60,如下所示:
function parseOffset(offset){
var minutesOffset = (parseInt(offset[1] + offset[2]) * 60)
console.log(parseInt(offset[0] + minutesOffset.toString()))
}
parseOffset("+03:00");
parseOffset("-02:00");
上面的returns也是负偏移
从普通 javascript 中的日期对象获取分钟的唯一方法是使用
.getTimezoneOffset()
- 但根据您的问题,情况似乎并非如此。
据我所知,没有其他方法可以将“+03:00”解析为分钟。
您可以尝试使用Parse Offset method of momentjs timezone。
用法:
var zone = moment.tz.zone('America/New_York');
zone.parse(Date.UTC(2012, 2, 19, 8, 30)); // 240
使用 vanilla JS,你可以使用下面的方法获取会议记录,它会接受正负偏移。
let offset = '-03:30';
let [h, m] = offset.split(':');
let hours = Number.parseInt(h);
let minutes = Number.parseInt(m);
let totalMinutes = hours * 60 + (hours < 0 ? (-minutes) : minutes);
我找到了解决方案:
moment().utcOffset("+03:00").utcOffset() // returns 180
moment().utcOffset("-09:00").utcOffset() // returns -540
我有一个函数 returns timezone offset
字符串(如“+03:00”)
我想使用 moment.js 或内置纯文本 javascript 选项
我该怎么做?
只需获取偏移小时数,然后将其乘以 60,如下所示:
function parseOffset(offset){
var minutesOffset = (parseInt(offset[1] + offset[2]) * 60)
console.log(parseInt(offset[0] + minutesOffset.toString()))
}
parseOffset("+03:00");
parseOffset("-02:00");
上面的returns也是负偏移
从普通 javascript 中的日期对象获取分钟的唯一方法是使用
.getTimezoneOffset()
- 但根据您的问题,情况似乎并非如此。
据我所知,没有其他方法可以将“+03:00”解析为分钟。
您可以尝试使用Parse Offset method of momentjs timezone。
用法:
var zone = moment.tz.zone('America/New_York');
zone.parse(Date.UTC(2012, 2, 19, 8, 30)); // 240
使用 vanilla JS,你可以使用下面的方法获取会议记录,它会接受正负偏移。
let offset = '-03:30';
let [h, m] = offset.split(':');
let hours = Number.parseInt(h);
let minutes = Number.parseInt(m);
let totalMinutes = hours * 60 + (hours < 0 ? (-minutes) : minutes);
我找到了解决方案:
moment().utcOffset("+03:00").utcOffset() // returns 180
moment().utcOffset("-09:00").utcOffset() // returns -540