2015-11-16 2 views
-2

В JavaScript, если у меня есть даты в следующих форматах строк (мм/дд/гггг)Javascript Дата сравнение

date1 = "11/16/2015" 
date2 = "11/09/2015" 
date3 = "10/31/2015" 

Могу ли я непосредственно запускать сравнения на них?

как

date1 < date2 
date2 > date3 

это правильный путь, чтобы сравнить их? Будет ли автоматически учитывать даты (как 31 октября < 3 ноября)

ответ

2

Вы не можете сделать это с форматом строки, вы должны преобразовать даты, чтобы Date() объектов перед comparaison:

var date1_parts= date1.split("/"); 
date1 = new Date(date1_parts[2], date1_parts[0] - 1, date1_parts[1]); 

var date2_parts= date2.split("/"); 
date2 = new Date(date2_parts[2], date2_parts[0] - 1, date2_parts[1]); 

Теперь вы можете сравнить их с помощью < или > признаков:

date1 > date2 
true 
date1 < date2 
false 
date1 == date2 
false 

Надеется, что это помогает

+0

Thx..so один из моих дат является текущая дата и другие Я получаю с экрана в строчном формате («мм/дд/гггг») ... Итак, как мне сравнить эти 2, так как первый будет новым Date(), а второй будет строка из экрана? – testndtv

+0

Приветствую вас, вы думаете, что вы можете использовать '>' или '<', так как после преобразования _string с экрана также будут 'new Date()' после преобразования, поэтому оба будут иметь тот же тип 'Date'. –

+0

А для разницы между двумя датами я могу прямо вычесть «-» – testndtv

1

Вы должны преобразовать тип даты, то сравнить их

var d1 = new Date("11/16/2015"); 
var d2 = new Date("11/09/2015"); 

d1>d2 //true 
d2>d1 //false