Javascript Date: один выходной на планшете - PullRequest
0 голосов
/ 30 ноября 2018

Я работаю с датой в Javascript.

Цель - показать событие на определенную дату.

Он отлично работает на моем ПК.

Работаетотлично на моем телефоне Google Pixel.

НО, он не работает на 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);
    }
})

Похоже, что часовой пояс установлен на двух планшетах в порядке.

Я пробовал несколько вещей, я отлаживал Safari с помощью Weinre, но ничего не нашел.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Не знаю почему, не знаю как, но работает следующее:

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);
    }
  })
0 голосов
/ 30 ноября 2018

По умолчанию вызов getTime для объекта даты вернет число типа 1543609232286, метку времени Unix.

Я бы порекомендовал использовать библиотеку даты / времени, например date-fns.

Это позволит вам выполнять такие вычисления, как:

import { isBefore, isAfter } from 'date-fns'

let before = isBefore(firstDate, secondDate)
let after = isAfter(firstDate, secondDate)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...