【问题标题】:Convert datetime to ISO Format using moment js使用时刻 js 将日期时间转换为 ISO 格式
【发布时间】:2018-04-01 09:20:48
【问题描述】:

我想将日期时间转换为 iso 以将其显示为 ionic 中的 ion-datetime

这是我的 .html 代码

<ion-item>
  <ion-label stacked>Date</ion-label>
  <ion-datetime [min]="minFrom" [max]="maxFrom" displayFormat="hh:mm a"></ion-datetime>
</ion-item>

这是我的 .ts 代码

  var start = moment('08:00 AM', 'hh:mm A');
  var end = moment('04:00 PM', 'hh:mm A').subtract(30, 'm');
  if(end < start) {
    end = end.add(1, 'd');
  }
  var minTime = moment(start, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DD HH:mm');
  var maxTime = moment(end, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DD HH:mm');
  console.log(minTime);
  console.log(maxTime);
  console.log("=====================");
  this.minFrom = moment(minTime, 'YYYY-MM-DD HH:mm:ss').toISOString();
  this.maxFrom = moment(maxTime, 'YYYY-MM-DD HH:mm:ss').toISOString();
  console.log(this.minFrom);
  console.log(this.maxFrom);

输出给了我

=====================
2017-10-20 08:00
2017-10-21 16:30
=====================
2017-10-20T00:00:00.000Z
2017-10-20T08:30:00.000Z

为什么 ISO 格式会给出不同的值

预期输出

=====================
2017-10-20 08:00
2017-10-21 16:30
=====================
2017-10-20T08:00:00.000Z
2017-10-21T16:30:00.000Z

这是一个小提琴样本

https://jsfiddle.net/zpt30706/1/

【问题讨论】:

  • '2017-10-20 08:00' 被解释为本地,2017-10-20T00:00:00.000Z 是 UTC。您的时区似乎是 GMT-0800(美国太平洋标准时间还是阿拉斯加夏令时间?),因此它们在不同时区(分别为 -0800 和 +0000)是同一时刻。

标签: javascript datetime typescript ionic2 momentjs


【解决方案1】:

你现有代码的这部分没问题。

var start = moment('08:00 AM', 'hh:mm A');
var end = moment('04:00 PM', 'hh:mm A').subtract(30, 'm');
if(end < start) {
  end = end.add(1, 'd');
}

由于您已经有了矩对象,您现在可以根据需要设置它们的格式。

this.minFrom = start.format('YYYY-MM-DD[T]HH:mm');
this.maxFrom = end.format('YYYY-MM-DD[T]HH:mm');
console.log(this.minFrom);
console.log(this.maxFrom);

输出:

2017-10-20T08:00
2017-10-20T15:30

请注意,您从 16:00 减去 30 分钟,因此您得到 15:30。如果你真的想要 16:30,那么你应该增加 30 分钟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2020-11-23
    • 2022-10-15
    • 2021-12-15
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多