2017-06-20 93 views
-1

我做按照this的问题,我需要格式化我得到的时间字符串。我用引导的DateTimePicker和moment.js,我有这样的代码:的JavaScript moment.js格式日期

$("#datetimepicker2").on("dp.change", function (e) { 
    console.log('date2: ' + e.date.format('MM.DD.YYYY HH:mm:ss')); 
    end_date = e.date; 
    end_date.toJSON = function(){ return moment(this).format(); }; 
}); 
console.log(JSON.stringify(end_date)); 

我的问题是,我收到

"2017-06-20T17:29:05+03:00" 

,而我需要的是这样的:

"2017-06-20T17:29:05.013Z" 

任何想法如何获得它将是受欢迎的。谢谢。

+0

好,然后再去读moment.js文档并找出可用的格式说明符......? – CBroe

回答

0

可以瞬间对象转换为JS日期和使用toISOString()。 力矩()TODATE()toISOString()。;

+0

问题是压倒一切的时候'toJSON'方法 – Masha

0

您可以添加.format前.tz()(),并通过在内部.tz( “美国/纽约”)的时区等

$(function() { 
 
    $("#datetimepicker2").datepicker(); 
 
    $("#datetimepicker2").on("change", function(e) { 
 
    console.log(moment().utc($(this).val()).format()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone-with-data.js"></script> 
 
Date: <input type="text" id="datetimepicker2" />

+0

不工作,说undefined'的'不能读取属性“toLowerCase”时区不保留。任何想法可能是什么?我正在重写一个'toJSON'方法来保存时区 – Masha