javascript - 从 m/d/Y H :I:s 创建 JavaScript 日期对象

标签 javascript

我正在尝试从 m/d/Y H:I:s 字符串创建一个 JavaScript 日期对象。以下是我的尝试。它在没有 H:I:s 的情况下工作正常,但不能与它一起工作。如何从 m/d/Y H:I:s 创建 JavaScript 日期对象?

var dt='  5/5/1964   11:13:00 ';
var valid=false;
dt = dt.replace('  ',' ');    //Get rid of double spaces
dt.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //Trim string
dt=dt.split(' ');
var d=(dt[0])?dt[0].split('/'):[];
var t=(dt[1])?dt[1].split(':'):[];
if (d.length === 3) {
    d=[d[2],d[1]-1,d[0]];   //Change to YMD and month to 0 to 11
    //var date=new Date.apply(null, d.concat(t));  //doesn't work
    dt = d.concat(t).join();
    console.log(dt);
    var date=new Date(dt);
    console.log(date);
    if ( Object.prototype.toString.call(date) === "[object Date]" && !isNaN( date.getTime() )) {
        // it is a date and is valid.  date.valueOf() could also work instead of date.getTime()
        valid=true;
    }
}
if(valid){ doSomethingWithDate(date);}

最佳答案

没有必要对字符串进行特殊解析,因为 Date 类构造函数(内部 Date.parse )可以自动解析给定的格式:

var date = new Date('  5/5/1964   11:13:00 ');
console.log(date);  // e.g. Tue May 05 1964 11:13:00 GMT+0100 (BST)

请参阅 MDN 中的更多格式示例.

关于javascript - 从 m/d/Y H :I:s 创建 JavaScript 日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494258/

相关文章:

javascript - 在循环内构建 2 级 JavaScript 数组

javascript - 如何重构这个重复的 jQuery 代码

javascript - $ 在 onload 中不可用

javascript - 如何/为何从 <script> include 切换到 npm install?

javascript - 可以信任 script.readyState 来检测动态脚本加载的结束吗?

javascript - Node.js 写入http请求响应

javascript - 在数组(或对象)上迭代异步的最聪明/最干净的方法是什么?

html - 自动开始延迟加载图像,无需等待用户向下滚动页面

javascript - this.each 不是 jqm 小部件中的函数

javascript - 如何从 vb 代码立即调用 javascript 函数