ionic-framework - 我选择的日期显示在 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
问题是它显示的是前一天的日期。
但我想显示确切的选定日期。
任何帮助深表感谢。
解决方案
new Date()使用您的系统时区返回日期。
toISOString()以 UTC 格式返回日期,日期的时间部分是午夜,因此它返回 Thu Aug 08 2018 23:00:00 (BST - 1h),这就是为什么你要提前一天。
你到底想做什么?
在评论后编辑我的答案
在您的情况下,我会选择简单的方法,因为您显然不需要任何时区信息:
开始挑战: date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
- 或者您可以使用 moment.js ( http://momentjs.com/docs/#/displaying/format/ )
推荐阅读
- php - 为什么我在我的 csv 开头用 php 有一个换行符?
- javascript - How to create nested elements in JavaScript?
- assembly - 如何从堆栈中的字符组成字符串?
- c# - Unity2D旋转问题
- node.js - 查看 NodeJS GRPC 库发送的实际字节流
- swift - 在运行时切换 iCloud 同步
- c++ - 局部变量在函数中保留值
- hyperledger-composer - Hyperledger Composer Playground 找不到我的交易功能
- java - 从 Url 下载图像并转换为字节数组 - android
- swift - 在 macOS Cocoa 基于文档的应用程序中,对于“从模板新建”功能(例如在 Logic 中),什么可能是一个好的实施策略?