我需要将硬编码日期转换为标准GMT格式。我该怎么做? 我的日期采用以下格式: var myDate ='dd | mm | yyyy'; 日期中没有时间或日期描述。只有'dd | mm | yyyy'字符串。 有没有办法可以把它转换成GMT?
提前致谢。
答案 0 :(得分:2)
a = '22/02/2014'.split('/')
d = new Date(a[2],parseInt(a[1], 10) - 1,a[0])
//Sat Feb 22 2014 00:00:00 GMT+0530 (India Standard Time)
现在您在d
utc = d.getUTCDate() + "/" + (d.getUTCMonth() + 1 ) + "/" + d.getUTCFullYear();
//"21/2/2014" for an accurate conversion to UTC time of day is a must.
如果您在印度,则Javascript Date
对象将timeZoneOffset
330
。因此,除非您的系统时间为Date
,否则无法使用时区GMT
保留javascript GMT
对象。
因此,如果您想要一个Date
对象进行计算,可以使用localTimezone创建一个,并简单地假设它是GMT
pseudoGMT = new Date( Date.parse(d) + d.getTimezoneOffset() * 60 * 1000);
//Fri Feb 21 2014 18:30:00 GMT+0530 (India Standard Time)
如果您能解释您的高级别要求,我们可以提供一些替代解决方案。
答案 1 :(得分:1)
使用正则表达式匹配来提取所需的数据:
var myDate = "21|01|2014";
var data = myDate.match(/(\d{2})\|(\d{2})\|(\d{4})/);
var date = new Date(data[3], data[2] - 1, data[1]);
请注意,月份为0索引,因此january = 0
有关正则表达式的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp