簡體   English   中英

使用Moment JS將日期時間轉換為ISO格式

[英]Convert datetime to ISO Format using moment js

我想將日期時間轉換為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/

現有代碼的這一部分很好。

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分鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM