Javascript две проблемы сравнения времени и даты

0

Я tring, чтобы сравнить две даты с javascript. Фактически моя цель получения предупреждающего сообщения, если первая дата является более ранней, чем вторая дата, но javascript не работает должным образом. Пока я отлаживаю курсор firefox, который собирается блокировать else, даже если это условие. Между тем, аналогичный код javascript работает правильно, что на jsfiddle.

http://jsfiddle.net/Mjora/ZNaMW/

Код Javascript

$("#btn").click(function(){
    var firstDate = $('#firstDate').val();
    var lastDate = $('#lastDate').val();

    if (firstDate > lastDate) {
        alert("First date can not be greater than Last date!!");
    }
    else{...} 
});

Также я попробовал код, подобный этому;

   $("#btn").click(function(){
        var firstDate = $('#firstDate').val();
        var lastDate = $('#lastDate').val();

        if (new Date(firstDate) > new Date(lastDate)) {
            alert("First date can not be greater than Last date!!");
        }
        else{...} 
    });

 /********/

var fDate="10.10.2020";
var lDate="10.10.2010";

var fDateSpl= fDate.Split(".");
var lDateSpl= lDate.Split(".");

var newFDate = new Date(fDateSpl[2], fDateSpl[1], fDateSpl[0]);
var newLDate = new Date(lDateSpl[2], lDateSpl[1], lDateSpl[0]);


if (newFDate > newLDate) {
    alert("First date can not be greater than Last date!!");
}
else{...} 

Html

<input type="text" id="firstDate"/>
    <br/>
<input type="text" id="lastDate"/>
    <br/>
<input type="button" value="Send" id="btn"/>
  • 0
    Сравнение строк: if (firstDate > lastDate) { не даты ...
  • 0
    Да, это работает, если вы измените его на newFDate.getTime() > new LDate.getTime() ?
Теги:
datetime
date
comparison

2 ответа

3
Лучший ответ

Используйте Date.parse(firstDate)> Date.parse(lastDate)

$("#btn").click(function(){
    var firstDate = $('#firstDate').val();
    var lastDate = $('#lastDate').val();
    if (Date.parse(firstDate) > Date.parse(lastDate)) {
        alert("First date can not be greater than Last date!!");
    } 
});

Ссылка Fiddle

  • 0
    Я пытался, как указано выше, но функция Date.parse () и getTime () повторяет NAN.
  • 0
    Можете ли вы проверить формат даты, которую вы ввели? Или, пожалуйста, проверьте формат, который я использовал в моей ссылке на скрипку
Показать ещё 1 комментарий
1

Ваша первая попытка, if (firstDate > lastDate) { сбой, потому что это сравнение строк, а не сравнение дат.

И ваша другая попытка потерпела неудачу из-за опечатки

var fDateSpl= fDate.Split(".");
var lDateSpl= lDate.Split(".");

должно быть

var fDateSpl= fDate.split(".");
var lDateSpl= lDate.split(".");

измените это, и у вас появится предупреждение

  • 0
    Спасибо за вашу помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню