在JS中格式化字符串到日期
Formatting String to Date in JS
我知道这是一个简单的问题,但是我怎么也解决不了。
我有一个JSON对象:
{
"_id": {
"$oid": "57cb5aac9bd9a31100c793d1"
},
"reminders": [
"2014-03-12T12:00:00",
"2014-03-12T13:37:27",
"2014-03-12T13:37:27",
"2014-03-12T22:14:27"
],
"user": "xxx"
}
我想解析日期从提醒是JS到一个循环中的日期对象,如下所示。
for (var i = userSchedule.reminders.length - 1; i >= userSchedule.reminders.length - 1; i++)
{
var date = new Date(userSchedule.reminders[i]);
}
但它只是显示无效的日期,每当我记录它。什么好主意吗?
虽然它不是答案,但为什么你使用 user_schedule.reminders
和userSchedule.reminders
,你的for循环只会循环一次正确的数据,因为你的循环开始于i=3;这是userSchedule.reminders[3]
的最后一个元素的索引,当你下一次循环时,它将超出你的数组提醒的范围
这里的东西并不像看起来的那样,因为在Chrome和Node.JS中调用日期构造函数会为我返回正确的日期。我也在下面的JSBin中尝试过。
https://jsbin.com/fomagugiwe/edit?html 输出我将记录进入日期构造函数的值,以确保所使用的值具有正确的格式。您是否还可以提供用于此脚本的Node版本以供进一步测试…
对于日期时间操作,我强烈建议使用http://momentjs.com
你可以做
moment("your date string")
或
moment("your date string","your date format")
你的循环被打破了,似乎你正试图从0
迭代到userSchedule.reminders.length - 1
,所以:
for (var i=0; i < userSchedule.reminders.length; i++) {
// do stuff
}
同样,使用date构造函数解析日期字符串(和date。由于实现上的差异,不建议使用Parse(它们相当于解析)。您应该手动解析字符串,库可以提供帮助,但如果只有一种格式需要解析,则没有必要使用库。
像"2014-03-12T12:00:00"这样的日期字符串应该被视为"本地"(即在计算时间值时应该使用主机时区偏移量),但并非所有实现都会这样做。像fecha.js这样的小库使它变得简单:var d = fecha.parse('2014-03-12T12:00:00','YYYY-MM-DDTHH-mm-ss');
您也可以使用moment.js,但对于您需要的东西来说,它可能有点过头了。还有许多其他适合的解析和格式化库。
相关文章:
- 在JavaScript中拆分日期字符串的更好方法是什么
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 如何将日期字符串视为格式化数组[EYEAR,MONTH,DAY]
- 分析特定区域设置(而不是时区!)中的日期字符串
- PHP strtotime()为JavaScript日期字符串返回false
- 如何将毫秒转换为日期字符串
- 正在使用日期字符串初始化javascript日期对象
- 新Date()javascript的日期字符串
- 使用moment.js分析日语日期字符串
- 将日期字符串转换为数字以进行比较
- 分析具有不同日期格式的日期字符串
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- 将日期字符串转换为另一种语言
- 日期 ISO 日期字符串问题
- JavaScript 时刻格式日期字符串
- Javascript使用php日期字符串显示2014年而不是2013年
- MomentJS从日期字符串解析午夜本地
- Javascript Date对象到日期字符串
- 如何使用Javascript将iOS日期字符串转换为格式化日期
- 将日期字符串隐藏到日期对象中