簡體   English   中英

使用javascript格式化日期字符串

[英]Formatting date string with javascript

我有一個如下所示的日期字符串:

'Mon, 18 Jan 2016 05:05:21 EST -05:00'

我試圖用moment.js做到這一點:

moment(new Date('Mon, 18 Jan 2016 05:05:21 EST -05:00'), "MM-DD-YYYY").toString();

但是這會返回:無效日期...

我怎樣才能解決這個問題?

試試這個純JS版本:

 var d = new Date('Mon, 18 Jan 2016 05:05:21 EST -05:00'); document.getElementById("body").innerHTML = d.toLocaleDateString().replace(/\\//g,"-") 
 <div id="body"></div> 

試試這種方式。

 var strDate = 'Mon, 18 Jan 2016 05:05:21 EST -05:00'; strDate = new Date(strDate); var strNewDate = new moment(strDate).format('MM-DD-YYYY'); console.log(strNewDate) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script> 

您需要將字符串轉換為Date對象。然后創建時刻對象

使用momentjs時,請勿使用Date。 您必須提供自定義格式:

 var input = 'Mon, 18 Jan 2016 05:05:21 EST -05:00'; // use custom format here var date = moment(input, 'ddd, DD MMM YYYY HH:mm:ss ZZ'); // format() without argument return an ISO date $('#pre').append(date.format()); $('#pre').append('\\n'); $('#pre').append(date.format('YYYY-MM-DDTHH:mm:ss')); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script> <pre id='pre'></pre> 

moment(new Date('Mon, 18 Jan 2016 05:05:21 EST -05:00')).format('MM-DD-YYYY'); // 01-18-2016

沒有現成的解析EST -05:00 由於EST -05等於UTC +00:00 ,您必須這樣做:

dateString = 'Mon, 18 Jan 2016 01:05:21 +00:00';
dateFormat = 'ddd, DD MMM YYYY HH:mm:ss ZZ';
moment(dateString, dateFormat).format("MM-DD-YYYY");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM