[英]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.