简短问题:
将日期-月份-年小时(24):分钟
转换为时间戳
的最简单方法是什么?
由于更多的 View 在顶部添加了明确的问题,因此无需查看背景以及所有需要快速帮助的内容。
<小时/>背景:
我有一个简单的 html 表,我使用了 jquery sorter对我的表格列进行排序。
除了日期列具有以下数据格式之外,一切正常,
17-09-2013 10:08
date-month-year hour(24):minute
此列正在排序(按字母顺序),但不符合我的预期(按日期排序)。我尝试使用自定义解析器,如下所示,
$.tablesorter.addParser({
id: 'date_column', // my column ID
is: function(s) {
return false;
},
format: function(s) {
var timeInMillis = new Date.parse(s);
return timeInMillis;
},
type: 'numeric'
});
问题:
由于 new Date.parse(s)
导致它失败。
问题:
将 date-month-year hour(24):min
转换为时间戳的最简单方法是什么?然后我可以跳过 var timeInMillis = new Date.parse(s);
行。
谢谢
已编辑:
很抱歉对毫秒
感到困惑,实际上它应该是时间戳
,它是代表当前时间和日期的数字。
最佳答案
在 JavaScript 中解析日期是一件痛苦的事情,因为没有广泛的 native 支持。但是,您可以通过依赖 Date
的 Date(year,month,day [,hour,min,second,millisecond])
构造函数签名来执行类似以下操作对象。
var dateString = '17-09-2013 10:08',
dateTimeParts = dateString.split(' '),
timeParts = dateTimeParts[1].split(':'),
dateParts = dateTimeParts[0].split('-'),
date;
date = new Date(dateParts[2], parseInt(dateParts[1], 10) - 1, dateParts[0], timeParts[0], timeParts[1]);
console.log(date.getTime()); //1379426880000
console.log(date); //Tue Sep 17 2013 10:08:00 GMT-0400
您还可以使用带有捕获组的正则表达式来解析一行中的日期字符串。
var dateParts = '17-09-2013 10:08'.match(/(\d+)-(\d+)-(\d+) (\d+):(\d+)/);
console.log(dateParts); // ["17-09-2013 10:08", "17", "09", "2013", "10", "08"]
关于javascript - 在 Javascript 中将日期时间字符串转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18849351/