javascript - 在 Javascript 中将日期时间字符串转换为时间戳

标签 javascript jquery

简短问题:

日期-月份-年小时(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 支持。但是,您可以通过依赖 DateDate(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/

相关文章:

javascript - 为什么 .html() 方法返回的代码比 div 中的代码多

javascript - 为什么 UpdatePanel 内的按钮在第一次后不执行 JQuery 事件

jquery - 通过 2 个选择列表过滤 html 表格

javascript - 在初始化时将所有过滤器选项设置为 'active' - Angular

javascript - 为什么 Material Icons 不在 phantom js 中呈现?

javascript - jQuery - 显示具有多个触发器的多个 div

javascript - 如何按照输入顺序获取关联数组的元素

c# - MVC 中的 JQuery getJSON

javascript - 有没有办法让选择的内容下推?

javascript - 读取 console.log() 输出形式的 javascript