2010-12-31 2 views
2

Я написал функцию, использующую javascript для проверки даты, выбранной из календаря, в текстовое поле с текущей датой. И я не получаю правильный результат. Формат даты, отображаемый в текстовом поле, - «01-окт-2010». А функция я создал выглядят следующим образом:Дата проверки

function CheckDate() { 
    var today = new Date(); 
    var startDate = document.getElementById("<%=txtStartDate.ClientID %>").value; 
    var endDate = document.getElementById("<%=txtEndDate.ClientID %>").value; 

    if (Date.parse(endDate) >= today) { 
     alert("End Date should not be greater than Today"); 
    } 

    return true; 
} 

ответ

2
var myDt=new Date(); 
myDOB = document.getElementById('dateField').value.split('-'); 
myDate = myDOB[0]; 
myMonth= getMonthInDigit(myDOB[1]); 
myYear = myDOB[2]; 
var now = new Date(); 
myDt.setFullYear(myYear,myMonth,myDate); //here year, month, date value should be parsed from the value u get 
var diff = (now.getTime() - myDt.getTime()) 
if(diff < 0){ 
    alert("End Date should not be greater than Today"); 
} 

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

Примечание: выполните функцию getMonthInDigit, которая возвращает значение в цифре по мере необходимости.

+0

Hi .... Это работает ..... Спасибо .... Я до сих пор не знаю, почему функции который я написал, не работает. –

+0

Как работает вышеуказанный код, если вы не делаете больше манипуляций, таких как var myDt = new Date (Date.parse (endDate.replace (/ -/g, ""))); ??? – mplungjan

+0

@ mplungjan- проверить код теперь я добавил, как вы можете получать значения за месяц, год и дату – niksvp

1
  1. удалить выскакивает
  2. тест против today.getTime(), так как Date.parse возвращает метку времени, а не объект даты

просто изменить

if (Date.parse(endDate) >= today) { 

для

if (Date.parse(endDate.replace(/-/g," ")) >= today.getTime()) { 

Возможно, вы захотите N ORMALISE дату, так как метка времени может быть несколько миллисекунд больше, чем когда была создана дата:

var endTime = new Date(Date.parse(endDate.replace(/-/g," ")).setHours(0,0,0,0).getTime(); 
var today = new Date().setHours(0,0,0,0).getTime(); 
if (endTime > today) {