2012-04-03 59 views
0

我有這個 - Tue, 03 Apr 2012 05:00:33 GMT簡單的JavaScript日期轉換

需要此 - 20120323111106

谷歌已經失敗了我,我想我只是不知道到底是什麼即時搜索,所以我用它保存在這裏簡單題。

編輯:日期顯然不匹配,只是希望得到它的格式。

+0

相關:http://stackoverflow.com/questions/2573581/javascript-string-to-date-conversion-simple – 2012-04-03 05:09:56

+0

還有這個新的js庫與日期處理:[XDate](http:// arshaw .com/xdate /) – 2012-04-03 05:12:22

+2

「Tue,03 Apr 2012 05:00:33 GMT」和「20120323111106」甚至不是同一日期。你只需要它的格式,或者是後者應該是實際生成的字符串給定輸入日期 – 2012-04-03 05:12:29

回答

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 
} 

我的人物指數數字可能是關閉的,但是如果你使用這個想法,它應該讓你直線。定義一個函數並按照你所擁有的格式傳遞日期,然後按照你想要的格式輸出日期。

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(我的時區),您可以根據您的時區播放。

+0

謝謝,但這不提供輸出即時尋找。這只是給我毫秒的日期。 – user1309548 2012-04-03 05:52:45

+1

哦,我的印象是長字符串是毫秒日期格式。抱歉! – gabitzish 2012-04-03 06:14:33

+0

我希望,那會很容易:) – user1309548 2012-04-03 06:24:38