我正在尝试将日历中的日期转换为特定格式。 所以我使用特定的选择器日期选择器获取日历的值:
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上运行良好。
答案 0 :(得分: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()
(指定所需的格式)。
这是一个实时工作示例(模拟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>
&#13;