2017-03-05 46 views
0

好吧,我試圖找出如何把喜歡的話:轉換的話迄今爲止

Sun-Mar-5-2017 

到像一些日期格式:

03052017 

我只知道做的是把數字換言之,而不是周而復始。 那麼,在JavaScript中可能嗎?

+1

您是否已經嘗試過moment.js(http://momentjs.com/)? – Reto

+0

簡單的解析和格式化函數可能是4行代碼,你試過了什麼? – RobG

+0

不管怎麼說,一些js params是......怪異的......至少在我目前的工作中。我已經嘗試了'date.parse'並且它結束了奇怪:/ – Arkonsol

回答

2

還有就是我的解決辦法,但你可以考慮傑里米傑克遜的更好。

function formatDate(date) { 
    var dateSplited = date.split("-"); 

    var monthNames = [ 
    "Jan", "Feb", "Mar", 
    "Apr", "May", "Jun", "Jul", 
    "Aug", "Sep", "Oct", 
    "Nov", "Dec" 
    ]; 

    var day = dateSplited[2]; 
    if (day < 10){ 
    day = "0" + day; 
    } 
    var month = monthNames.indexOf(dateSplited[1]) + 1; 
    if (month < 10){ 
    month = "0" + month; 
    } 
    var year = dateSplited[3]; 

    return month + day + year; 
} 

alert(formatDate("Sun-Mar-5-2017")); 
+0

Re「* ...考慮傑里米傑克遜的更好。*」不,我不知道。 ;-) – RobG

+0

那麼,如果我的答案適合你,那麼將它標記爲綠色勾號的答案。否則,請標出其他答案或給予更多的英特爾,我們如何幫助您。 – Shaq

+0

這是唯一以某種方式爲我工作的人。多謝,夥計! :D coz moment.js以某種方式結束了怪異。這可能是因爲我正在研究的一些參數:/ – Arkonsol

0

是啊,這是可以做到:

function formatDate(date) { 
    var dd = (date.getDate() < 10 ? '0' : '') + date.getDate(); 
    var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1); 
    var yyyy = date.getFullYear(); 

    // create the format you want 
    return (MM + "" + dd + "" + yyyy); 
} 

var dateString = 'Sun-Mar-5-2017'; 
var dateObj = new Date(dateString); 
var newDateString = formatDate(dateObj); 
+0

'new Date('Sun-Mar-5-2017')'在Firefox和IE(至少)中返回一個無效日期。您不應該使用Date構造函數(或Date.parse)解析字符串。 – RobG

+0

啊,很好的抓住:) –

0

Moment.JS在這裏很容易。

var inputDate = 'Sun-Mar-5-2017', 
    outDate; 

// replace '-' with space ' ' to have proper date string 
inputDate = inputDate.replace(/-/g, ' '); 

outDate = moment(inputDate).format('MMDDYYYY'); //"03052017" 
+0

是的,但它有點沉重。我無法讓我的節目太重 – Arkonsol

+0

你是什麼意思太重?你能解釋一下嗎? – MGA

+0

是的。一些moment.js正在使用的參數,我也使用,因此呈現不同,並延遲我的申請。 :/這真的很奇怪。 – Arkonsol