ion-datetime:如何在没有时间戳的情况下获取日期值?

Rea*_*der 13 javascript typescript ionic-framework angular ionic4

我在 ionic4 中使用 ion-datetime 使用 NgModel 绑定到一个属性,但是,无论我在格式中包含什么选项,我总是得到包含时间戳的时间。¿如何从结果中删除时间戳,以便我的属性的最终值类似于“2019-04-22”而不是“2019-04-22T08:45:41.243-05:00”?

我试过了:但是,我仍然得到时间戳

 <ion-datetime max="2030" min="2019" [(ngModel)]="mydate" display-format="MMM DD, YYYY"></ion-datetime>
Run Code Online (Sandbox Code Playgroud)

我希望结果类似于:“2019-04-22”,但我不断收到:“2019-04-22T08:45:41.243-05:00”

Rea*_*per 9

如果你只想要日期,那么我认为 split() 方法可能有效,因为我们从 ion-datetime 得到的值是一个字符串。所以我们使用 split 方法将字符串拆分并将其转换为数组,你可以获得日期或时间在索引的帮助下你想要的东西如下:

     var dateFormat = mydate.split('T')[0]; 
     console.log(dateFormat);
     // 2019-04-22
Run Code Online (Sandbox Code Playgroud)


Die*_*sel 0

Edit2:toLocaleFormat 没有被广泛接受。是一篇关于替代方案的帖子。您可以将其拆分为T.

const dateArray = fullDateString.split('T');
if (dateArray.length > 0){
    const partYouWant = dateArray[0];
}
Run Code Online (Sandbox Code Playgroud)

编辑:来自 Ionic 文档

还需要注意的是,displayFormat 或 pickerFormat 都无法设置日期时间值的输出,这是由组件的 ngModel 设置的值。该格式仅用于将值显示为文本和选择器界面,但日期时间的值始终保留为有效的 ISO 8601 日期时间字符串。

这是一个更好的答案:

const dateObject = new Date(this.mydate);
const dateString = dateObject.toLocaleFormat('%Y-%m-%d');
Run Code Online (Sandbox Code Playgroud)

的输入new Date可以是日期字符串,定义为:

表示日期的字符串值。该字符串应采用 Date.parse() 方法识别的格式(符合 IETF 的 RFC 2822 时间戳以及 ISO8601 的版本)。


我猜您正在尝试this.mydate在代码中访问。

您有多种选择,最好的体现是这个堆栈溢出帖子

this.mydate.toLocaleFormat('%Y-%m-%d');
Run Code Online (Sandbox Code Playgroud)

该函数将获取一个Date对象并将其转换为您请求的格式的字符串。所有你可以放入选项的选项都在这里

上面的堆栈溢出帖子中还显示了许多其他选项。