Javascript日期:在平板电脑上放假一天

时间:2018-11-30 20:17:01

标签: javascript date

我正在使用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,但是什么也没发现。

2 个答案:

答案 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)