如何在JavaScript中将字符串转换为日期?
var st = "date in some format" var dt = new date(); var dt_st= //st in date format same as dt
字符串解析的最佳字符串格式是日期ISO格式以及JavaScript Date对象构造函数。
ISO格式的示例:YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS。
YYYY-MM-DD
YYYY-MM-DDTHH:MM:SS
可是等等! 仅仅使用“ ISO格式”本身不能可靠地工作。字符串有时会解析为UTC,有时会解析为本地时间(基于浏览器供应商和版本)。最佳做法应始终是将日期存储为UTC并进行计算为UTC。
要将日期解析为UTC,请附加 Z- 例如:new Date('2011-04-11T10:20:30Z')。
new Date('2011-04-11T10:20:30Z')
要以UTC显示日期,请使用.toUTCString(), 以以用户当地时间显示日期,请使用.toString()。
.toUTCString()
.toString()
为了与旧的Internet Explorer兼容(小于9的IE版本在Date构造函数中不支持ISO格式),应将datetime字符串表示形式拆分为其各个部分,然后可以使用带datetime组成部分的构造函数,例如: new Date('2011', '04' - 1, '11', '11', '51', '00')。请注意,月份数必须少1。
new Date('2011', '04' - 1, '11', '11', '51', '00')
替代方法-使用适当的库:
您还可以利用Moment.js库,该库允许解析具有指定时区的日期。