简单的Javascript日期转换

时间:2012-04-03 05:07:57

标签: javascript date

我有 - Tue, 03 Apr 2012 05:00:33 GMT

需要这个 - 20120323111106

谷歌让我失望了,我想我只是不确切地知道我在搜索什么,所以我在这里用这个问题保持简单。

编辑:日期显然不匹配,只是希望以这种格式获得它。

2 个答案:

答案 0 :(得分:1)

答案很好(后来编辑):

我认为这就是你要找的东西:

function addZero(val){
    if (parseInt(val) < 10) return "0" + val;
    return val;
}

var dt = new Date("Tue, 03 Apr 2012 05:00:33 GMT");
console.log(dt.getFullYear() + addZero(dt.getMonth()) + addZero(dt.getDay()) + addZero(dt.getHours()) + addZero(dt.getMinutes()) + addZero(dt.getSeconds()))

最初的错误答案:

var dt = new Date("Tue, 03 Apr 2012 05:00:33 GMT")
var miliseconds = dt.getTime();

我测试了它,我的电脑自动将其转换为GMT +3(我的时区),您可以根据您的时区进行测试。

答案 1 :(得分:0)

编写一个解析字符串的函数应该对你有用。通过它的外观,您当前拥有的任何日期字符串将具有相同的长度。如果是这种情况,这应该相对容易。在将它们作为参数传递之前,请确保您的字符串采用这种格式。

function parse(string) {
    var out = "yyyymmddhhmmss"
    out.charAt(0) = string.charAt(13);
    out.charAt(1) = string.charAt(14);
    out.charAt(2) = string.charAt(15);
    out.charAt(3) = string.charAt(16);

    //if else statements for each month converting to numbers
    if (string.substring(9,12).equals("Apr")) {
         out.charAt(4) = '0';
         out.charAt(5) = '4';
    }

    out.charAt(6) = string.charAt(18);
    out.charAt(7) = string.charAt(19);

    ...etc for the remaining values

    return out
}

我的角色指数数字可能会被关闭,但如果你使用这个想法,它应该让你直截了当。定义一个函数并以您所拥有的格式传递日期,然后以您想要的格式输出日期。