将自定义日期字符串转换为日期对象
convert custom date string to date object
如何将日期的字符串表示转换为真正的javascript日期对象?
日期格式如下
E MMM dd HH:mm:ss Z yyyy
。
Sat Jun 30 00:00:00 CEST 2012
Thanks in advance
编辑:我的工作解决方案是基于公认的答案。要使其在IE8中工作,您必须将月份部分(例如Jun)替换为月份数(例如6月为5,因为1月为0)
您的日期字符串大多可以按原样解析,但CEST
不是ISO 8601中的有效时区,因此您必须手动将其替换为+0200
。
一个简单的解决方案可能是:
var str = "Sat Jun 30 00:00:00 CEST 2012";
str = str.replace(/CEST/, '+0200');
var date = new Date(str);
如果您想要支持其他由名称定义的时区,您必须找到它们可能的值和相关的偏移量。你可以在地图中注册它们:
var replacements = {
"ACDT": "+1030",
"CEST": "+0200",
...
};
for (var key in replacements) str = str.replace(key, replacements[key]);
var date = new Date(str);
这可能是一个很好的时区缩写列表。
您可以使用以下代码将字符串转换为日期时间:
var sDate = "01/09/2013 01:10:59";
var dateArray = sDate.split('/');
var day = dateArray[1];
// Attention! JavaScript consider months in the range 0 - 11
var month = dateArray[0] - 1;
var year = dateArray[2].split(' ')[0];
var hour = (dateArray[2].split(' ')[1]).split(':')[0];
var minute = (dateArray[2].split(' ')[1]).split(':')[1];
var objDt = new Date(year, month, day, hour, minute);
alert(objDt);
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的moment.js日期对象
- 使用moment.js获取时间分区的偏移日期对象
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将某个时间格式转换为日期对象
- 正在使用日期字符串初始化javascript日期对象
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 如何将事件的日期放入fullcalendar中的日期对象中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 理解日期对象接收参数时的getDay()方法
- JS日期对象setUTCMonth()将月份增加2
- 时间-日期对象JavaScript getUTCMilliseconds
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- Javascript 测试中的假日期对象
- 转换/格式化日期对象
- 如何在发布JavaScript日期对象时保留时区偏移量
- JS日期对象在某个范围内的百分比
- 无法从日期对象javascript获取日期和月份
- javascript日期对象未返回正确的日期
- Javascript日期对象-JSFiddle中的不同值