14

I am having the following codes and it though i'm having 01-Jan-2009 for DateTo and 03-Jan-2009 for DateFrom it's reading the values as NAN. Am I missing anything? I`m referencing

 var DateToValue = $("#DateTo").val();
      var DateFromValue = $("#DateFrom").val();

      if (Date.parse(DateToValue) <= Date.parse(DateFromValue)) {
          $("#DateFrom").val(DateToValue)
      }
  <script src="@Url.Content("~/Scripts/jquery-1.4.2.min.js")"
 type="text/javascript"></script>

 <script  src="@Url.Content("~/Scripts/jquery.datePicker.js")"
type="text/javascript"></script>

         <script src="@Url.Content("~/Scripts/jquery.validate.js")"
 type="text/javascript"></script>

7 Answers 7

19

How about this?

  DateTime DateToValue = $("#DateTo").val();
  DateTime DateFromValue = $("#DateFrom").val();

  if (Date.parse(DateToValue) <= Date.parse(DateFromValue)) {
      $("#DateFrom").val(DateToValue)
  }
Sign up to request clarification or add additional context in comments.

Comments

16

The Easy Way to Do is

 var start= new Date($('#txtstart').val());
 var end= new Date($('#txtend').val());
            if (start < end) {

            }

Comments

6

Use DateJS for parsing your date. http://www.datejs.com/ just include the script in your html.

Comments

3

My Comparison with the current date

    function isPastDate(dateText) {
// date is dd/mm/yyyy
        var inputDate = dateText.split("/");
        var today = new Date();
        inputDate = new Date(inputDate[2], inputDate[1] - 1, inputDate[0], 0, 0, 0, 0);
        today = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);
        return inputDate < today;
};

Comments

1

I think my answer is late, tell me if it is better or not as only this worked for me in v1.10:

if($('#DateTo').val().split("/").reverse().join("") <= 
$('#DateFrom').val().split("/").reverse().join("")){//Do something}

Comments

0

you can use below code to parse through the dates, using the millisecond approach (adding milliseconds present in a day) will not work properly for the daylightsaving.

for ( beginDate= new Date(startDate.getTime()); beginDate.getTime()<=endDate.getTime(); beginDate.setDate(beginDate.getDate() + 1)) {
            dateRangeArray.push(new Date(beginDate.getTime()));
        }

Comments

0

here's more a simplified way from simple java script

<script>
 //get the values
function asdf(){
var fDate=document.forms[0].fromDate.value;
var tDate=document.forms[0].toDate.value;

//Compare

if(fDate>tDate){
        var dateComponentsfrom = fDate.split("/");

//split and convert into date to be more precise

        var fromdate = new Date(dateComponentsfrom[2], dateComponentsfrom[1] - 1, dateComponentsfrom[0]);
        var dateComponentsto = tDate.split("/");
        var todate = new Date(dateComponentsto[2], dateComponentsto[1] - 1, dateComponentsto[0]);
        if(fromdate>todate){
            alert('from date cannot be greater than to date');
            return false;                        
        }
    }
}
</script>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.