Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较dd-MMM-yyyy格式日期的验证_C#_Javascript - Fatal编程技术网

C# 比较dd-MMM-yyyy格式日期的验证

C# 比较dd-MMM-yyyy格式日期的验证,c#,javascript,C#,Javascript,我有两个文本框。一个包含开始日期,另一个包含结束日期。这两个文本框均为日期格式。我的要求是比较这两个日期,如果截止日期小于起始日期,我必须抛出一个异常(如果截止日期

我有两个文本框。一个包含开始日期,另一个包含结束日期。这两个文本框均为日期格式。我的要求是比较这两个日期,如果截止日期小于起始日期,我必须抛出一个异常(如果截止日期<起始日期,我不能继续)

我使用了比较验证器,但它不工作。 所以我试着用java脚本进行验证,但已经有几天不起作用了

我将脚本编写为:

function ValidateDate() {
        var fromdate = document.getElementById("txtStartDate");
        var todate = document.getElementById("txtEndDate");

        var startDate = fromdate.value;
        var endDate = todate.value;


        if (endDate < startDate) {
            alert("Please ensure that the End Date is greater than or equal to the Start Date.");
            return false;
        }
    }
函数ValidateDate(){
var fromdate=document.getElementById(“txtStartDate”);
var todate=document.getElementById(“txtEndDate”);
var startDate=fromdate.value;
var endDate=todate.value;
如果(结束日期<开始日期){
警报(“请确保结束日期大于或等于开始日期”);
返回false;
}
}

请你们中的任何一个人为我提供一个解决方案。提前感谢。

我假设您需要将文本框的值转换为日期,然后才能进行比较。否则,您将只是比较它们的词典顺序

var startDate = Date.parse(fromdate.value);
var endDate = Date.parse(todate.value);
试试类似的东西

function CompareDates(str1,str2) 

{ 

    if(str1 == "")

        return false;

   var dt1   = parseInt(str1.substring(0,2),10); 

   var mon1  = parseInt(str1.substring(3,5),10);

   var yr1   = parseInt(str1.substring(6,10),10); 

   var dt2   = parseInt(str2.substring(0,2),10); 

   var mon2  = parseInt(str2.substring(3,5),10); 

   var yr2   = parseInt(str2.substring(6,10),10); 

   mon1 = mon1 -1 ;

   mon2 = mon2 -1 ;

   var date1 = new Date(yr1, mon1, dt1); 

   var date2 = new Date(yr2, mon2, dt2); 



   if(date2 >= date1)

   {

        return false; 

   } 

   else 

   { 

        return true;

   } 

} 

在这里使用Jquery会容易得多

var fromdate = document.getElementById("txtStartDate");
    var todate = document.getElementById("txtEndDate");

if ($.datepicker.parseDate('dd/mm/yy', fromdate) > $.datepicker.parseDate('dd/mm/yy', todate)) {

       alert(fromdate+ 'is greater than ' + todate);

}
检查文档。

要比较两个日期,c#提供了一种比较它们的方法。它返回一个int值,以检查第一个值是否早于第二个值、相同于第二个值还是晚于第二个值

DateTime date1 = new DateTime(2013, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2013, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);

if (result < 0)
{
    // date1 is earlier than date2;
}
else if (result == 0)
{
    // date1 is the same time as date2
}
else
{
    // date1 is later than date2
}
DateTime date1=新的DateTime(2013,8,1,0,0,0);
DateTime date2=新的日期时间(2013,8,1,12,0,0);
int result=DateTime.Compare(date1,date2);
如果(结果<0)
{
//date1早于date2;
}
否则如果(结果==0)
{
//日期1与日期2的时间相同
}
其他的
{
//日期1晚于日期2
}

希望它能帮助你。

最后,我得到了解决方案,朋友们

我所做的只是将日期解析为自1970年1月1日00:00:00 UTC以来的毫秒数。我已经分析了这两个日期,并比较了这两个值

解决办法是:

function ValidateDate() {
        var fromdate = document.getElementById("txtFromDate");
        var todate = document.getElementById("txtToDate");
        var endDate = todate.value;
        var startDate = fromdate.value;

        /* Convert the date 01-Jan-1991 to Jan 1, 1991 */

        var splitdate = startDate.split("-");
        var dt1 = splitdate[1] + " " + splitdate[0] + ", " + splitdate[2];
        var splitdate = endDate.split("-");
        var dt2 = splitdate[1] + " " + splitdate[0] + ", " + splitdate[2];

        var newStartDate = Date.parse(dt1); //Parse the date to  milliseconds since January 1, 1970, 00:00:00 UTC
        var newEndDate = Date.parse(dt2);

        if (newStartDate > newEndDate ) {
            alert("Please ensure that the End Date is greater than or equal to the Start Date.");
            return false;
        }
    }

哪天不起作用?有模式吗?请提供示例。如果您想在javascript中执行此操作,可以使用Date对象。您可以像日期一样比较它们,或者使用“getTime”方法以毫秒为单位获取时间,然后像整数一样比较它们。