【问题标题】:Split date string with dashes用破折号分割日期字符串
【发布时间】:2016-12-17 16:13:08
【问题描述】:

我有一个这种格式的日期值:20160810

我需要将其拆分为正确的日期格式,如下所示:2016-08-10

在 jquery 中,我将如何实现这一点?我不能使用 split() 因为它必须有一个分隔符来引用,所以我不确定是否有一个可以根据字符数进行拆分的函数。

【问题讨论】:

    标签: jquery date split


    【解决方案1】:

    使用String#replace方法

    var res = '20160810'.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3')
    
    console.log(res);

    Regex explanation here.


    或者用String#slice方法

    var str = '20160810';
    
    var res = str.slice(0, 4) + '-' + str.slice(4,6) + '-' + str.slice(-2);
    
    console.log(res);

    【讨论】:

    • 嗯,你的速度更快! :)
    • 谢谢!同时拥有这两种选择真的很有帮助。
    • @Eckstein:很高兴为您提供帮助:)
    【解决方案2】:

    如果你不喜欢用 RegExp 做事:

    var dateArray = '20160810'.split('')
    var year = dateArray.slice(0,4).join('')
    var month = dateArray.slice(4,6).join('')
    var day = dateArray.slice(6).join('')
    console.log([year, month, day].join('-'))

    【讨论】:

      【解决方案3】:

      早安!

      也许您尝试使用 substr() 函数。此函数根据开始和结束 charindex 从字符串中删除子字符串:

      var string = "20160810";
      var date = string.substr(0,3)+"-"+string.substr(4,5)+"-"+string.substr(6,7);
      

      这也可以使用正则表达式:

      var string = "20160810";
      var date = string.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3'); //2016-08-10
      

      在第二个示例中,您使用捕获组来捕获三个不同长度的小数,并将它们替换为用- 分隔的自身。

      希望能帮到你!

      【讨论】:

        【解决方案4】:

        你也可以使用momentjs:

        > moment("20160810", "YYYYMMDD").format("YYYY-MM-DD")
        '2016-08-10'
        

        【讨论】:

        • 这是一个很棒的图书馆,这些天我只信任我的日期和时间
        猜你喜欢
        • 1970-01-01
        • 2018-02-15
        • 1970-01-01
        • 2015-03-31
        • 2021-03-28
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多