[英]Javascript Moment Invalid Date Error on Internet Explorer 11
[英]moment returns Invalid Date on Internet Explorer and Safari
我正在嘗試將日歷中獲取的日期轉換為特定格式。 因此,我使用特定的選擇器日期選擇器獲取日歷的值:
var ChkinDate = $('#myCheckinDate').data('datepicker').getDate();
// the value I am getting is: ChkinDate=Mon Apr 24 2017 00:00:00 GMT+0300 (GTB Daylight Time);
現在,我正在嘗試將此日期轉換為特定格式
var CheckinDate = moment(new Date(TimezoneDate(ChkinDate))).format('MM/DD/YYYY');
function TimezoneDate(objDate) {
if (IsEmpty(objDate)) {
return moment().format('YYYY-MM-DD 00:00:00');
}
else {
return moment(objDate).format('YYYY-MM-DD 00:00:00');
}
}
這在使用Chrome瀏覽器和Mozilla Firefox的Windows機器上可以完美地工作,但是當我使用Internet Explorer時,變量CheckinDate
“無效日期”。 Mac計算機上也可能出現此問題,但現在我在Safari上顯示“無效日期”,但在Firefox上運行良好。
由於獲取的是JavaScript日期,因此可以使用以下代碼:
function TimezoneDate(objDate) {
if (IsEmpty(objDate)) {
return moment();
}
else {
return moment(objDate);
}
}
var ChkinDate = $('#myCheckinDate').data('datepicker').getDate();
var CheckinDate = TimezoneDate(ChkinDate).format('MM/DD/YYYY');
使用moment(Date)
從JavaScript日期獲取一個矩對象,然后可以使用format()
以您喜歡的格式(例如format('MM/DD/YYYY')
或format('YYYY-MM-DD HH:mm:ss')
format()
獲取矩format('YYYY-MM-DD HH:mm:ss')
)。
在我的示例TimezoneDate
函數中返回一個矩對象,因此您可以在其上調用format()
(指定所需的格式)。
這是一個實時工作示例( ChkinDate
IsEmpty
和ChkinDate
):
// Mocking IsEmpty function function IsEmpty(obj){ if(obj) return false; return true; } function TimezoneDate(objDate) { if (IsEmpty(objDate)) { return moment(); } else { return moment(objDate); } } //var ChkinDate = $('#myCheckinDate').data('datepicker').getDate(); // Mocking datepicker date var ChkinDate = new Date(2017, 5, 10); var CheckinDate = TimezoneDate(ChkinDate).format('MM/DD/YYYY'); console.log(CheckinDate)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.