我想使用javascript格式化ISO YYYY-MM-DDThh:mm:ss.sTZD
格式的日期。
我可以用yyyy-MM-dd'T'HH:mm:ss.SSSZ
格式转换当前日期字符串。例如2016-01-11T02:40:33.117Z
。但我希望得到2016-01-11T02:40:33.117+1100
。
可以在javascript中使用吗?
答案 0 :(得分:0)
请尝试以下操作。
var date = new Date(Date.now());
date.setTime(date.getTime() - (date.getTimezoneOffset() * 60000));
var output = date.toISOString().substring(0, date.toISOString().length - 1) + ((date.getTimezoneOffset() / 60) < 0 ? "-" : "+") + ((Math.abs(date.getTimezoneOffset() / 60) < 10) ? ("0" + Math.abs(date.getTimezoneOffset() / 60)) : test) + "00";
output
变量应该接近您要查找的内容。 (+和 - 可以反转)
注意:可能存在更好的解决方案;如果我找到它,我会发布它。
答案 1 :(得分:0)
function getCurrentDateFormated() {
var date = new Date();
date.setTime(date.getTime() - (date.getTimezoneOffset() * 60000));
var timeZoneHours = date.getTimezoneOffset() / 60;
var finalHours = Math.abs(timeZoneHours) < 10 ?
timeZoneHours < 0 ? '-0' + timeZoneHours.toString().substring(1)
: '+0' + timeZoneHours.toString().substring(1)
: timeZoneHours;
var timeZoneMin = ((timeZoneHours - Math.floor(timeZoneHours)) * 60) < 10 ?
'0' + (timeZoneHours - Math.floor(timeZoneHours)) * 60 : (timeZoneHours - Math.floor(timeZoneHours)) * 60;
var timeZone = finalHours + timeZoneMin;
return date.toISOString().substring(0, 20) + date.getMilliseconds() + timeZone;
}