2015-07-01 2 views
1

Я использую выражение двигатель, и я кладу поле даты в яваскрипте переменного, он разбирает, как это:Как сравнить 2 даты в другом формате (JavaScript)

1435269960 

Так что я хочу, чтобы проверить эту дату раньше, чем сегодня. Но когда я создаю объект даты и я console.log (дата) он показывает мне этот вид даты:

Wed Jul 01 2015 18:14:33 GMT-0400 (Eastern Daylight Time) 

Как изменить этот формат для первого?

Thx!

+0

Просто используйте 'Date.now()' ' – galactocalypse

ответ

1

Вы можете сделать это следующим образом:

var dateNumber = 1435269960; 
var convertedDate = new Date(1000*dateNumber); 
var today = new Date(); 

if(convertedDate < today) 
    $(".date").html("The date is in the past<br/><br/>" + convertedDate + "<br/>vs<br/>" + today); 
else 
$(".date").html("The date is today or in the future<br/> (" + convertedDate + ") vs (" + today + ")"); 

Демо: http://jsfiddle.net/db9ms49z/

+0

Это отлично работает. +1 –

+0

Хорошие ответы объясняют проблему и почему предлагаемое решение исправляет ее, например. [* Как преобразовать временную метку unix в объект даты JavaScript (рассмотреть часовой пояс) *] (http://stackoverflow.com/questions/11656601/how-to-convert-unix-timestamp-to-javascript-date-object-consider -часовой пояс). – RobG

1

Если вы хотите получить длинное значение для объекта Date, вы можете вызвать метод valueOf(): date.valueOf() < 1435269960.

+0

+ date' короче,' Date.getTime() ', вероятно, больше семантики, но 'date <1435269960' достаточно. ;-) – RobG

+0

Метод valueOf - это правильный способ поддержки целочисленных операторов как '<' и '+' для объектов. Под капотом вызывается 'valueOf', поэтому я думаю, что это самый чистый способ сделать это. Пример: '+ ({valueOf: function() {return 5;}})' возвращает '5'. –

Смежные вопросы