【问题标题】:How To Convert String ' dd/mm/yy hh:MM:ss ' to Date in javascript?如何在javascript中将字符串'dd/mm/yy hh:MM:ss'转换为日期?
【发布时间】:2015-09-02 16:56:56
【问题描述】:

我已经做到了

    var d='dd/mm/yy hh:MM:ss';
    var d1=d.split(" ");
    var date=d1[0].split("/");
    var time=d1[1].split(":");
    var dd=date[0];
    var mm=date[1]-1;
    var yy=date[2];
    var hh=time[0];
    var min=time[1];
    var ss=time[2];
    var fromdt= new Date("20"+yy,mm-1,dd,hh,min,ss);

有没有办法使用 JQuery 或 JavaScript 来做到这一点?

【问题讨论】:

  • mm-1 输入错误*
  • 您可以编辑您的问题并更正任何错误。

标签: javascript jquery date datetime


【解决方案1】:

如果您正在寻找 jquery 或 Javascript 的替代方案,那么您可以使用 Moment.js,您可以在其中 ParseValidateManipulate,并在 JavaScript 中显示日期。

示例:

  var date= moment("06/06/2015 11:11:11").format('DD-MMM-YYYY');

【讨论】:

  • 此示例应显示使用格式说明符作为moment 函数的第二个参数。请参阅“警告”here
  • 是的,它是一个弃用警告:这是由于日期的格式,请参阅此链接github.com/moment/moment/issues/1407,这里他们已经为它提供了解决方案@MattJohnson
【解决方案2】:

Date.parse()怎么样?

new Date( Date.parse("05/12/05 11:11:11") );
// Thu May 12 2005 11:11:11 GMT+0200 (CEST)

产生的输出是本地时区的,并且在不同时区的浏览器中会有所不同。

【讨论】:

    【解决方案3】:

    无论时区如何,这都适用于 dd/mm/yyy hh:mm:ss 格式。它也不依赖第三方包:

    let dtStr = "12/03/2010 09:55:35"
    
    console.log(strToDate(dtStr));  // Fri Mar 12 2010 09:55:35
    
    function strToDate(dtStr) {
      if (!dtStr) return null
      let dateParts = dtStr.split("/");
      let timeParts = dateParts[2].split(" ")[1].split(":");
      dateParts[2] = dateParts[2].split(" ")[0];
      // month is 0-based, that's why we need dataParts[1] - 1
      return dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], timeParts[0], timeParts[1], timeParts[2]);
    }

    【讨论】:

    • null怎么处理?
    • @O'DaneBrissett 已编辑,但确切答案取决于您的实施。如果这是一个具有不可为空约束的数据库,您可能希望在返回 new Date(dtStr) 的函数的第一行中添加一个 if 语句,它只会为您提供 unix 时间戳。否则最好只返回 null(因为 null 字符串在逻辑上解析为 null 日期)。
    【解决方案4】:

    我们可以使用 moment js 将任何本地日期格式转换为 datetime 数据类型。

    语法:

    moment('<local date value>','<local date format>').format('<expected convert format>')
    

    示例:

    moment('26/05/1986 00:00', 'DD/MM/YYYY HH:mm').format("MM/DD/YYYY HH:mm");
    

    那么输出将是 05/26/1986 00:00

    干杯

    【讨论】:

      【解决方案5】:

      Date#parse 如果您在字符串上拆分,应该能够解析它。我还建议查看 npm 包 moment 以进行日期操作

      【讨论】:

        【解决方案6】:

        从您的代码看来,您正在尝试将字符串转换为日期,并且您正在尝试获取上个月的数据。如果是,那么您可以按如下方式重构您的代码:

        Date.prototype.SubtractMonth = function(numberOfMonths) {
        var d = this;
        d.setMonth(d.getMonth() - numberOfMonths);
        return d;
        }
        
        $(document).ready(function() {
             var dateString='2015-06-17T18:30:12';
            var d = new Date(dateString);
            alert(d.SubtractMonth(1));
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-30
          • 2019-01-14
          • 1970-01-01
          • 2016-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多