Если новая дата меньше даты, хранящейся в переменной

Мне просто интересно, как я могу сравнить дату со следующим кодом:

var today = new Date();

Выводит текущий день так:

Wed Feb 24 2016 12:02:34 GMT+0000 (GMT Standard Time)

Однако, если у меня есть переменная, содержащая строку, например, так:

var end = "Tue Mar 1 2016 00.00.00 GMT+0000 (GMT Standard Time)";

Я не могу сравнить эти две переменные в операторе if, используя оператор больше, потому что end переменная является строкой.

Так что мне просто интересно, как я могу сравнить установленную дату в переменной с моей сегодняшней переменной?

Спасибо ник

2 ответа

Решение

Вы можете использовать временную метку даты вместо строкового представления.

var today = new Date();
console.log(today.getTime());

Это целое число, и вы можете сравнить два из них. Помните, что это метка времени в миллисекундах, а не в секундах, если вы хотите сравнить ее с метками времени из других источников.

Примечание. Существует также возможность анализа обратно из строкового представления объекта time to Date, но это во многом зависит от формата, в котором была составлена ​​строка (и, возможно, от клиента JS), и это может не всегда работать. Я рекомендую работать только с числовыми временными метками, если вы планируете сравнивать время.

Вы можете создать новый объект даты с вашей сохраненной датой и сравнить их.

var today = new Date();

//Edited date slightly to make it fit javascript date format
var end = new Date("Thu Mar 01 2001 00:00:00 GMT+0000 (GMT)");

Например

if(today > end){
    //do something
}
Другие вопросы по тегам