2017-04-12 83 views
0

我想將日曆從日曆轉換爲特定格式。時刻返回Internet Explorer和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'); 
    } 
} 

這是在Windows機器上完美的工作: 所以我使用的是特定的選擇日期選取器獲得日曆的價值使用Chrome瀏覽器和Mozilla Firefox,但是當我使用Internet Explorer時,我在變量CheckinDate中收到「無效日期」。該問題也發生在Mac機器上,但現在我在Safari上獲得「無效日期」,但在Firefox上運行良好。

回答

1

既然你得到一個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'))。

在我的示例TimezoneDate函數返回一個時刻對象,因此您可以調用format()(指定您需要的格式)。


這裏現場工作示例(嘲諷IsEmptyChkinDate):

// 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>

+0

餵我歌廳 「對象不支持屬性或方法 '格式化'」 – focus

+0

@重點編輯我的答案添加一個工作片段。你確定你使用相同的代碼嗎? – VincenzoC

相關問題