2017-04-16 27 views
1

我有像這樣的JSON中的數據 - 19-04-2017T12:40:00,這是日期值,我想要在「T」之前的部分並想要轉換這個值並得到日期結構,例如2017年4月25日星期三。如何在javascript中實現這個?我想在日期字符串T之前有一個字符串

+2

momentjs是解析日期的好庫 –

回答

1

如果你可以使用外部庫,那麼momentjs是最好的之一。

var data = { 
    "selectedOnwardFlight": [ 
     { 
      "lstExtraServices": [], 
      "flightDuration": "1:20", 
      "departuretime": "19-04-2017T12:40:00", 
      "arrivalairport": "GOI_Dabolim, Goa", 
      "segment": 1, 
      "departureairport": 
      "BOM_Chhatrapati Shivaji International, Mumbai", 
      "mac": "6E_Indigo Airlines", 
      "fno": "5924", 
      "dpartTerInfo": "1", 
      "oac": "6E", 
      "arrivaltime": "19-04-2017T14:00:00", 
      "arrivalTerInfo": "" 
     } 
    ] 
} 

var date = moment(data.selectedOnwardFlight[0].arrivaltime, "DD-MM-YYYYThh:mm:ss") 
// You need to specify input date format 

console.log(date.format("ddd, DD, MMM, YYYY")) 
// After creating moment date object, you can get date in almost any format. 

給人星期三,19月,2017年

詳細解析和輸出格式,檢查momentjs docs

+0

必須將此值19-04-2017T12:40:00轉換爲字符串才能將其作爲參數在時間傳遞? – SmitSherlock

+0

因爲我從JSON得到這個值19-04-2017T12:40:00因爲它沒有雙引號 – SmitSherlock

+0

是的,它必須是字符串。如果你從json獲得價值,它應該是字符串,我猜。你可以發佈示例數據嗎? –

1

您可以使用new Date()String.prototype.slice()與參數010"-"作爲參數,Array.prototype.reverse().join()與參數"/"與參數0得到字符"T".split(),再次.slice()15獲得所需的日期部分

var date = String(
 
      new Date("19-04-2017T12:40:00".slice(0, 10) 
 
      .split("-").reverse().join("/")) 
 
      ).slice(0, 15); 
 

 
console.log(date);

0

使用時刻JavaScript庫,並在下面的功能

通過你的JSON值
function formatDate(jValue) { 
     var l = jValue.split("T")[0].split("-"); 
     var r = l[2] + "-" + l[1] + "-" + l[0]; 
     var o = moment(r); 
     return o.format("LLLL").split(',')[0].trim() + ", " + o.date() + " " + o.format("lll").split(",")[0].split(" ")[0].trim() + ", " + o.year() 
    } 

提供「19-04-2017T12:40:00」作爲參數o/p是2017年4月19日星期三

相關問題