0

所以我有一个代表日期的字符串,我需要更改它的格式。这是我到目前为止所拥有的:

    function myFunction()
    {
    var dateto = "05/01/2013";
    dateto.replace("/", "");
    //now what?
    }

它最初始终是 MM/DD/YYYY 格式,我需要将其更改为 YYYYMMDD 格式。我正在寻找关于dateto = dateto[5..8] + dateto[0..1] + dateto[2..3] . 不知道如何在 JS 中编写它。

4

3 回答 3

7

您可以使用一些简单的字符串操作

var dateto = "05/01/2013";
var parts = dateto.split('/');
var newDate = parts[2] + parts[0] + parts[1];

小提琴:http: //jsfiddle.net/kvU6H/

于 2013-07-02T17:36:39.773 回答
4

这可以使用正则表达式替换和捕获组来完成:

"05/01/2013".replace(
    /(\d{2})\/(\d{2})\/(\d{4})/, // capture data in groups
    "$3$1$2")                    // replace with captured groups

虽然上述方法在这种特定情况下效果很好,但请考虑像moment.js这样的库:

moment
    .parse("05/01/2013", "MM/DD/YYY") // parse our format
    .format("YYYYMMDD")               // write target format
于 2013-07-02T17:36:01.973 回答
-1

您可以考虑只在原始字符串中提供所需字符串substring()的开始和结束位置(或索引)的函数:

function myFunction()
{
    var dateto = "05/01/2013";

    return dateto.substring(6, 10) + dateto.substring(0, 2) + dateto.substring(3, 5);
}

返回:

20130501

Javascript(和大多数编程语言)中的索引从 0 开始......所以对于您的字符串:

string:  0  5  /  0  1  /  2  0  1  3  
 index:  0  1  2  3  4  5  6  7  8  9
于 2013-07-02T17:37:56.333 回答