У меня есть поле в сетке, содержащей дату/время, и мне нужно знать разницу между этим и текущей датой/временем. Что может быть лучшим способом сделать это?Как вычесть дату/время в javascript?
ответ
Это даст вам разницу между двумя датами в миллисекундах
var diff = Math.abs(date1 - date2);
В вашем примере, было бы
var diff = Math.abs(new Date() - compareDate);
Вы должны убедиться, что compareDate
является действительным Date
объект ,
Что-то, как это будет, вероятно, работать для вас
var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));
т.е. превращение "2011-02-07 15:13:06"
в new Date('2011/02/07 15:13:06')
, который представляет собой формат Date
конструктор может понять.
это игнорирует обработку DTS для локального часового пояса (хорошо работает с UTC) –
в TypeScript Я получаю ошибку tslint при попытке сделать это: var diff = Math.abs (new Date() - compareDate); – Devid
Вы можете просто вычесть два объекта даты.
var d1 = new Date(); //"now"
var d2 = new Date("2011/02/01") // some date
var diff = Math.abs(d1-d2); // difference in milliseconds
Вы можете использовать getTime()
метод для преобразования Date
количеству миллисекунд, прошедших с 1 января 1970 года Тогда вы можете легко делать любые арифметические операции с датами. Конечно, вы можете преобразовать номер обратно в Date
с setTime()
. См. Пример here.
Если вы хотите получить разницу в времени настенных часов, для местного часового пояса и с учетом дневного света.
Date.prototype.diffDays = function (date: Date): number {
var utcThis = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
var utcOther = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
return (utcThis - utcOther)/86400000;
};
Тест
it('diffDays - Czech DST', function() {
// expect this to parse as local time
// with Czech calendar DST change happened 2012-03-25 02:00
var pre = new Date('2012/03/24 03:04:05');
var post = new Date('2012/03/27 03:04:05');
// regardless DST, you still wish to see 3 days
expect(pre.diffDays(post)).toEqual(-3);
});
Diff минут или секунд в той же манере.
Если вы не вычитаете даты в одном и том же браузере и не заботитесь о случаях краев, таких как изменения дневного света, вам, вероятно, лучше использовать moment.js, который предлагает мощные локализованные API. Например, это то, что у меня есть в моем utils.js:
subtractDates: function(date1, date2) {
return moment.subtract(date1, date2).milliseconds();
},
millisecondsSince: function(dateSince) {
return moment().subtract(dateSince).milliseconds();
},
- 1. Как вычесть ISOdates в Javascript
- 2. вычесть экспоненты в JavaScript
- 3. конвертировать локальную датуВремя в UTC в R
- 4. Вычесть две строки в javascript
- 5. Как выбрать последнюю датуВремя каждого месяца?
- 6. Как выбрать последнюю датуВремя каждой недели? C#
- 7. Вычесть массивы - javascript
- 8. Как вычесть минуты из даты в javascript?
- 9. Как вычесть пиксели из чисел в JavaScript?
- 10. Как вычесть две даты в javascript?
- 11. Как вычесть процент от числа в Javascript?
- 12. Как вычесть дату с датой в JavaScript
- 13. Получить актуальную датуВремя устройства в автономном режиме
- 14. IBM RIT - отобразить текущую датуВремя в запросе
- 15. Как добавить/вычесть даты с помощью JavaScript?
- 16. Вычесть продолжительность из поля времени в Javascript
- 17. Нажмите, чтобы вычесть 1 в javascript
- 18. Конвертировать локальную датуВремя в нескольких местах в UTC в java
- 19. Как вычесть значения переключателей
- 20. Вычесть фон в WebRTC
- 21. Как вычесть входные значения
- 22. Как добавить и вычесть числа в DOM с помощью Javascript?
- 23. вычесть 1 неделю с текущей даты - javascript
- 24. как вычесть значение в xslt?
- 25. Как вычесть строки в xts
- 26. Как вычесть листы в Excel
- 27. Как вычесть время в php?
- 28. Как вычесть элементы в DataFrame
- 29. Как вычесть фигуры в PowerPoint?
- 30. Как вычесть месяцы в датах?
Каков формат даты/времени? –
он хранится так «2011-02-07 15:13:06» –
Это не дубликат. У этого есть другое решение и объясняется намного лучше. Он также имеет лучший ранг поиска. – 3Dom