给定一个日期字符串,用new Date
解析,我该如何确定准确度?
年
let date = new Date('2017')
// Sun Jan 01 2017 00:00:00
月
let date = new Date('2017-10')
// Sun Oct 01 2017 00:00:00
let date = new Date('oct 2017')
// Sun Oct 01 2017 00:00:00
日期
let date = new Date('2017.3.15')
// Wed Mar 15 2017 00:00:00
let date = new Date('3 15 17')
// Wed Mar 15 2017 00:00:00
我无法检查月份是否是1月,以确定准确度是否为year
,因为月份可能是1月,显然。
new Date('2017').getMonth() // 0
new Date('2017 1').getMonth() // 0
此外,使用RegExp
很困难,因为Date
解析器支持的格式差异很大。
是否可以使用内置Date
(或其他内置函数)确定日期字符串的准确性,如果是,如何确定?
编辑:最终目标是创建日期部分数组(即[year, month, day]
),例如,如果输入中省略了日期,则输出中也应省略它。 / p>
'2017 2 3' -> [2017, 2, 3]
'2017 4' -> [2017, 4]
'2017' -> [2017]
如果该问题的解决方案与上述问题的解决方案不同,那也可以,但我不认为有任何解决方案无法解决上述问题同样。