我正在使用Javascript处理日期。
目标是在特定日期显示事件。
它在我的PC上运行正常。
它在我的Google Pixel Phone上运行良好。
但是,它不适用于iPad Mini或Samsung Galaxy Tab A。
该事件仅在一天前和一小时后显示。
shipments.forEach(shipment =>{
var date = new Date(shipment.Date);
if((date.getTime() != day.getTime())){
shipments = shipments.filter(x => x.Id != shipment.Id);
}
})
两台平板电脑的时区似乎设置正确。
我尝试了很多事情,我已经用Weinre调试了Safari,但是什么也没发现。
答案 0 :(得分:0)
我不知道为什么,我不知道如何,但是以下方法正在起作用:
shipments.forEach(shipment =>{
var date = new Date(shipment.Date);
date.setHours(0,0,0,0)
var numberDay = shipment.Date.toString().substring(8, 10)
date.setDate(parseInt(numberDay));
if((date.getTime() != day.getTime())){
shipments = shipments.filter(x => x.Id != shipment.Id);
}
})
答案 1 :(得分:-1)
默认情况下,在日期对象上调用getTime将返回一个数字,例如1543609232286
(一个unix时间戳)。
我建议使用日期/时间库,例如date-fns。
这将允许您进行如下计算:
import { isBefore, isAfter } from 'date-fns'
let before = isBefore(firstDate, secondDate)
let after = isAfter(firstDate, secondDate)