我选择的日期显示在 Ionic 4 的前一天
My selected date is showing one day before in 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 ='Thu Aug 09 2018 00:00:00 GMT+0100 (British Summer Time)';
var myDate = new Date(DatePickerDate).toISOString().split('T')[0];
所以我的日期现在是 2018-08-08
问题是它显示的是前一天的日期。
但我想显示确切的选定日期。
非常感谢任何帮助。
new Date() return 使用系统时区的日期。
toISOString() return UTC 日期和日期的时间部分是午夜,所以 returns Thu Aug 08 2018 23:00:00 (BST - 1h),这就是为什么你要提前一天。
你到底想做什么?
Editing my answer following comment
在你的情况下,我会选择简单的方法,因为你显然不需要任何时区信息:
开始挑战:date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
- 或者您可以使用 moment.js (http://momentjs.com/docs/#/displaying/format/)
试试这个:
date = new Date(date.setDate(date.getDate() + 1));
me.acceptchallengeform.setValue({
startchallenge: new Date(date).toISOString().split('T')[0],
});
这将解决您的问题。
我在我的 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 ='Thu Aug 09 2018 00:00:00 GMT+0100 (British Summer Time)';
var myDate = new Date(DatePickerDate).toISOString().split('T')[0];
所以我的日期现在是 2018-08-08
问题是它显示的是前一天的日期。
但我想显示确切的选定日期。
非常感谢任何帮助。
new Date() return 使用系统时区的日期。
toISOString() return UTC 日期和日期的时间部分是午夜,所以 returns Thu Aug 08 2018 23:00:00 (BST - 1h),这就是为什么你要提前一天。
你到底想做什么?
Editing my answer following comment
在你的情况下,我会选择简单的方法,因为你显然不需要任何时区信息:
开始挑战:date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
- 或者您可以使用 moment.js (http://momentjs.com/docs/#/displaying/format/)
试试这个:
date = new Date(date.setDate(date.getDate() + 1));
me.acceptchallengeform.setValue({
startchallenge: new Date(date).toISOString().split('T')[0],
});
这将解决您的问题。