我正在使用以下离子日期时间分量
<ion-item >
<ion-label>Time:</ion-label>
<ion-datetime displayFormat="h:mm A" pickerFormat="h mm A" [(ngModel)]="localEstDelTime"></ion-datetime>
</ion-item>
在ionViewDidLoad上,我将localEstDelTime的值设置为:
var d = new Date()
var dt = d.setTime(d.getTime() + (5.5 + 2)*60*60*1000)
this.localEstDelTime = dt.toISOString()
基本上已经添加了5.5小时以使其成为印度时区(格林尼治标准时间+ 5.5),对于该用例,应该显示时间加上当前时间的2小时。
现在,要求是说最终用户通过UI再增加了一个小时,那么我想在本地时区中获得该小时和时间。我的代码无法正常工作,如下所示:
var storeEstDelTime = Date.parse(this.localEstDelTime)
var date = new Date(storeEstDelTime)
var hours = date.getHours() + 5.5
var minutes = date.getMinutes()
var ampm = Number(hours) >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour ’0′ should be ’12′
var minutesStr = Number(minutes) < 10 ? '0'+ minutes : minutes;
estDeliveryTime = hours + ':' + minutesStr + ' ' + ampm;
所以我需要estDeliveryTime为hh:mm AM / PM格式。我上面的代码需要修复。
答案 0 :(得分:0)
始终将日期转换为UTC time set
是一个好主意,因为这是一种常见的标准。就像输入日期一样,只需像这样转换日期:
var now = new Date(),
utcDate = new Date(
now.getUTCFullYear(),
now.getUTCMonth(),
now.getUTCDate(),
now.getUTCHours(),
now.getUTCMinutes(),
now.getUTCSeconds()
);
现在,当您从用户那里获取交货时间(该额外小时)的输入时,请对该日期执行相同的操作,并将该小时添加到utcDate
中,最后将UTC日期转换为GMT日期与IST相同,为5.5。
希望这会有所帮助:)
答案 1 :(得分:0)
npm i --save date-fns
从 .ts 文件中的“date-fns”导入 {format}
let example_time = "2019-11-30T14:42:30.951+08:00";
format(new Date(example_time), "HH:mm");
console.log(example_time) => '14:42'