【问题标题】:convert string to Date Javascript将字符串转换为日期 Javascript
【发布时间】:2017-04-28 15:16:20
【问题描述】:

尝试将字符串转换为 Javascript 日期。 我的字符串:

var fullDate = this.date + " " + this.time + ":00";

给出输出:24/12/2016 02:00:00

但试图将其转换为 js Date 对象,例如:

 var k = new Date(fullDate); 

给出输出:无效日期

甚至:var k = Date.parse(fullDate);

给出输出:NaN

欢迎任何帮助。

到目前为止,我一直在遵循 http://www.datejs.com/ 的指示

【问题讨论】:

  • 您的日期/时间格式可能与您的语言环境格式不匹配,并且不是 ISO...应该是其中任何一种。
  • 我不知道 datejs.com 上的指导说什么,但尝试阅读一些可靠的文档(例如developer.mozilla.org/en/docs/Web/JavaScript/Reference/…)并检查日期构造函数可以理解哪些日期格式,它不是其实那么多。 MomentJS 等其他库可以解析更多种格式的日期。
  • 这其实是对这个问题的一个很好的总结:stackoverflow.com/questions/3257460/…

标签: javascript date


【解决方案1】:

您的格式无效。有效格式为month/day/year,请尝试:

var fullDate = "12/24/2016 02:00:00";
var k = new Date(fullDate);

希望我能帮上忙!

【讨论】:

  • 如果字符串包含微秒,如何转换?
【解决方案2】:

我刚刚为此发布了一个答案/问题。 Here's my answer

总而言之,您需要先将字符串格式化为标准化格式,然后您可以将该字符串与新的 Date(string) 方法一起使用。这适用于许多浏览器(IE9+、Chrome 和 Firefox)。

stringFormat = moment(dateObject).format("YYYY-MM-DDTHH:mm:ss");
date = new Date(stringFormat);

【讨论】:

    【解决方案3】:

    这是因为您没有为new Date 提供有效的日期格式。所以日期格式不正确。 JavaScript 中的默认日期格式是dd/mm/yyyy

    日期应该是这样的(mm/dd/yyyy):

    12/24/2015

    然后你可以使用var k = new Date(fullDate);

    格式化日期的纯javascript解决方案(不带moment.js):

    var fullDate = "24/12/2016 02:00:00";
    fullDate = fullDate.split(' ');
    
    var date = fullDate[0].split(/\//);
    var time = fullDate[1];
    
    var newDate = date[1] + '/' + date[0] + '/' + date[2] + ' ' + time;
    var k = new Date(newDate);
    

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 2011-06-13
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 2015-10-01
      相关资源
      最近更新 更多