Javascript日期显示前一天

时间:2018-03-26 17:02:33

标签: javascript angular date

我在Angular应用程序中使用mydatepicker。当用户点击特定日期时,我将获得所选日期。但我希望有这样的日期格式。

20180320

2018-03-20

所以我做的是转换如下。

onDateChange(event) {
    this.selectDate = event.jsdate.toISOString().slice(0,10)
}

这有助于我获取格式。但它显示前一天。这意味着,如果用户从日历中选择2018-03-20我的selectDate = 2018-03-19

我可以用时间做到这一点,但是对于这个项目我没有因为某些原因而使用。有人可以帮我纠正这个吗?

3 个答案:

答案 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()
}
相关问题