需要将时间以正确的格式从JavaScript转换为ISODateString吗?
实际上,我正在尝试将日期从java脚本日期转换为ISO日期格式,但显示的时间不正确。在此情况下,时间是14:30,但我得到的是9:30,应该是2:30。我需要在时间中添加30分钟。此函数用于将JavaScript日期转换为ISO数据需要将时间以正确的格式从JavaScript转换为ISODateString吗?,javascript,jquery,date-format,isodate,Javascript,Jquery,Date Format,Isodate,实际上,我正在尝试将日期从java脚本日期转换为ISO日期格式,但显示的时间不正确。在此情况下,时间是14:30,但我得到的是9:30,应该是2:30。我需要在时间中添加30分钟。此函数用于将JavaScript日期转换为ISO数据 function myFunction1() { var val1="2013-08-08 14:30:59"; var t = val1.split(/[- :]/); alert(t); d = new Date(t[0], t[1]-1, t[2
function myFunction1()
{
var val1="2013-08-08 14:30:59";
var t = val1.split(/[- :]/);
alert(t);
d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
d = new Date(d.getTime() + (30 * 60000));
alert(ISODateString(d));
}
function ISODateString(d){
function pad(n){return n<10 ? '0'+n : n}
return d.getUTCFullYear()+'-'
+ pad(d.getUTCMonth()+1)+'-'
+ pad(d.getUTCDate()) +' '
+ pad(d.getUTCHours())+':'
+ pad(d.getUTCMinutes())+':'
+ pad(d.getUTCSeconds())
}
函数myFunction1()
{
var val1=“2013-08-08 14:30:59”;
var t=val1.分割(/[-:]/);
警报(t);
d=新日期(t[0],t[1]-1,t[2],t[3],t[4],t[5]);
d=新日期(d.getTime()+(30*60000));
警报(ISODateString(d));
}
函数ISODateString(d){
功能板(n){返回n
fiddle:您的问题是,您正在解析本地时区中的输入,但在UTC时间输出ISO字符串。如果输入也是UTC,则需要使用:
不需要UTC,因此将其删除
基本上你要找的是(转换成12小时的时间格式)
完整代码:
function ISODateString(d) {
function pad(n) {
return n < 10 ? '0' + n : n
}
return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-'
+ pad(d.getDate()) + ' ' + pad(d.getHours() > 12
? d.getHours() - 12 : d.getHours())
+ ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds())
}
函数ISODateString(d){
功能板(n){
返回n<10?'0'+n:n
}
返回d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'
+pad(d.getDate())+“”+pad(d.getHours()>12
?d.getHours()-12:d.getHours())
+“:”+pad(d.getMinutes())+“:”+pad(d.getSeconds())
}
结果:
输入:2013-08-08 14:30:59
输出:2013-08-08 03:00:59//因为您增加了30分钟
为什么当它是14:30
时它应该是2:30
?这应该是因为日期是在格林尼治时间创建的,而你的本地时区是IST。所以14:30被转换为格林尼治时间09:00+30分钟(=09:30)@InderSingh我很高兴我能提供帮助:)你能转换成24小时plzz:)@InderSingh试试这个pad(d.getHours())
类似于返回d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate())+'+pad(d.getHours())+':'+pad(d.getMinutes())+':'+pad(d.getSeconds())
function myFunction1() {
var val1="2013-08-08 14:30:59";
var t = val1.split(/[- :]/);
alert(t);
var d = Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
d = new Date(d + (30 * 60000));
alert("toISOString" in d ? d.toISOString() : ISODateString(d));
// if available then use native method
}
pad(d.getHours() > 12
? d.getHours() - 12 : d.getHours())
function ISODateString(d) {
function pad(n) {
return n < 10 ? '0' + n : n
}
return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-'
+ pad(d.getDate()) + ' ' + pad(d.getHours() > 12
? d.getHours() - 12 : d.getHours())
+ ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds())
}