我在Angular应用程序中使用mydatepicker。当用户点击特定日期时,我将获得所选日期。但我希望有这样的日期格式。
20180320
或
2018-03-20
所以我做的是转换如下。
onDateChange(event) {
this.selectDate = event.jsdate.toISOString().slice(0,10)
}
这有助于我获取格式。但它显示前一天。这意味着,如果用户从日历中选择2018-03-20我的selectDate = 2018-03-19
我可以用时间做到这一点,但是对于这个项目我没有因为某些原因而使用。有人可以帮我纠正这个吗?
答案 0 :(得分:1)
试试这个来考虑时区
onDateChange(event){
var localDate = new Date(event.jsdate.getTime() - event.jsdate.getTimezoneOffset() * 60000);
this.selectDate = localDate.toISOString().slice(0,10);
}
答案 1 :(得分:0)
toISOString始终为UTC + 0时间。如果你console.log它,你应该看到最后的Z.这意味着GMT。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
答案 2 :(得分:0)
试试原型功能
Date.prototype.getDDMMYYYY = function () {
var date = JSON.stringify(this.getDate()).length == 1 ? ("0" + this.getDate()) : this.getDate();
var month = JSON.stringify(this.getMonth()).length == 1 ? ("0" + this.getMonth()) : this.getMonth();
var year = this.getFullYear();
return year+"-"+month+"-"+date;
}
并且只需替换此代码
onDateChange(event){
this.selectDate = event.jsdate.getDDMMYYYY()
}