将偏移量(-4或-5夏令时)添加到日期YYYY-MM-DD格式字符串的Javascript



我对Javascript很陌生,我有一个要求,我将获得一个日期作为YYYY-MM-DD格式的输入值之一(例如:2014-07-01(,我需要将其转换为基于夏令时的UTC偏移量(-4或-5((例如:2014-07-01T00:00-04:00(。我使用下面的代码,但它没有在日期字符串的末尾添加偏移值,而是我得到了这样的"2014-07-01T00:00.000Z"。

if (wheelRequest.RegEndDate){
var regEndDate = new Date(wheelRequest.RegEndDate);
var regEndDateFormatted = new Date(regEndDate).toISOString();
licensenumObj.enddate    =    regEndDateFormatted ;
}

我已经验证了另一篇文章(如何格式化JavaScript日期(,但它没有提到如何在最后显示偏移值。请告知我如何根据需要添加偏移量。

谢谢,苏曼。

如果你想使用即时时区,在哪里使用

const moment = require('moment-timezone');
const input = '2020-11-11';
const time = moment(input);
time.format();

输出:Wed Nov 11 2020 00:00:00 GMT-0300

更改时区

const time = moment.tz(input, 'Asia/Tokyo');
time.format();

输出:Wed Nov 11 2020 12:00:00 GMT+0900

我想你需要看看这个:

function specialTime(dateString){
let dt = new Date(dateString), os = dt.getTimezoneOffset()/60;
if(os < 0 && os > -10){
os = '+0'+Math.abs(os);
}
else if(os < 10){
os = '-0'+os;
}
else{
os = '-'+os;
}
return dt.toISOString().replace(/..+$/, os+':00');
}
console.log(specialTime('2014-07-01'));

最新更新