Javascript将YYMMDD格式化字符串转换为日期对象
Javascript converting YYMMDD formatted string into date object
这可能是一个微不足道的问题,但我正在努力寻找最有效的方法来做到这一点。
我从servlet中获得了一个格式为"20130914"的字符串,我需要从中创建一个javascript日期对象。
据我所知,date对象接受ISO格式的字符串,所以我需要在我的年,月和日期之间附加破折号,如"2013-09-14"
我可以使用。splice函数在年,月和日期之间插入破折号,但我觉得必须有一个更容易的解决这个微不足道的问题。还是我想多了?
你所做的很好,写简单的代码来完成常见的任务没有什么大问题。
如果你发现自己在执行大量的日期计算,momentjs是一个非常小的(5kb)库,可以处理这样的日期。
例如,你现在需要的东西可以写为:
moment("20130914", "YYYYMMDD");
因为我爱上了正则表达式:
var rawDate = '20130914';
console.log(new Date(rawDate.replace(/('d{4})('d{2})('d{2})/,"$1-$2-$3")));
//Output: Sat Sep 14 2013 12:00:00 GMT+1200 (New Zealand Standard Time)
使用简单的JS:
var input = "20130914";
var date = new Date(input.substr(0, 4), input.substr(4, 2) - 1, input.substr(6, 2));
console.log(date.toString());
与其解析一个字符串来创建另一个由内置解析器解析的字符串,不如获取这些部分并将它们直接提供给Date构造函数:
let s = '20130914';
// Parse string in YYYYMMDD format to Date object
function parseYMD(s) {
let b = s.match(/'d'd/g);
return new Date(b[0]+b[1], b[2]-1, b[3]);
}
console.log(parseYMD(s).toString());
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的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中的不同值