首页 > 解决方案 > 我选择的日期显示在 Ionic 4 的前一天

问题描述

我在我的 Ionic 4 应用程序中工作,为此我使用了本机日期选择器,我正在将日期转换为,toISOString()但问题是它在前一天显示。

这是我的 ts:

this.datePicker.show({
  date: new Date(),
  mode: 'date',
  androidTheme: this.datePicker.ANDROID_THEMES.THEME_HOLO_DARK,
}).then(
  date => {
    me.acceptchallengeform.setValue({
      startchallenge: new Date(date).toISOString().split('T')[0], 
    });
    console.log('Got date: ', date)},
  err => {
    console.log('Error occurred while getting date: ', err)}
);

var DatePickerDate ='2018 年 8 月 9 日星期四 00:00:00 GMT+0100(英国夏令时)';

var myDate = new Date(DatePickerDate).toISOString().split('T')[0];

所以 myDate 现在是 2018-08-08

问题是它显示的是前一天的日期。

但我想显示确切的选定日期。

任何帮助深表感谢。

标签: ionic-frameworkionic4

解决方案


new Date()使用您的系统时区返回日期。

toISOString()以 UTC 格式返回日期,日期的时间部分是午夜,因此它返回 Thu Aug 08 2018 23:00:00 (BST - 1h),这就是为什么你要提前一天。

你到底想做什么?

在评论后编辑我的答案

  • 在您的情况下,我会选择简单的方法,因为您显然不需要任何时区信息:

    开始挑战: date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();


推荐阅读