繁体   English   中英

JavaScript和C#中的12小时时间格式比较

[英]12 Hour Time Format Comparison in JavaScript and C#

我在前端使用了以下JavaScript代码进行验证:

 function ConvertTime() { var inputval = "0" + document.getElementById('FromTime').value; var inputval2 = "0" + document.getElementById('ToTime').value; var tokens = /([10]?\\d) : ([0-5]\\d) ([ap]m)/i.exec(inputval); if (tokens == null) { return null; } if (tokens[3].toLowerCase() === 'pm' && tokens[1] !== '12') { tokens[1] = '' + (12 + (+tokens[1])); } else if (tokens[3].toLowerCase() === 'am' && tokens[1] === '12') { tokens[1] = '00'; } var tokens2 = /([10]?\\d) : ([0-5]\\d) ([ap]m)/i.exec(inputval2); if (tokens2 == null) { return null; } if (tokens2[3].toLowerCase() === 'pm' && tokens2[1] !== '12') { tokens2[1] = '' + (12 + (+tokens2[1])); } else if (tokens2[3].toLowerCase() === 'am' && tokens2[1] === '12') { tokens2[1] = '00'; } var convertedval = tokens[1] + ' : ' + tokens[2]; var convertedval2 = tokens2[1] + ' : ' + tokens2[2]; if (convertedval2 <= convertedval) { alert("End time must be greater than start time!"); alert(convertedval + " " + convertedval2) } } 
 <div> <label for="FromTime">From</label> <input type="text" class="timepicker form-control" id="FromTime" name="FromTime"> </div> <div> <label for="ToTime">To</label> <input type="text" class="timepicker form-control" id="ToTime" name="ToTime"> </div> <br /> <input type="submit" value="Allocate" class="btn btn-primary" id="button" onclick="ConvertTime()" /> 

因此,上述代码实际上以24小时时间格式检查结束时间(ToTime)是否大于开始时间(FromTime)。 然后再次在服务器端,我使用以下内容检查C#的24小时时间格式:

int FromTime = DateTime.Parse(aAllocateRoom.FromTime).Hour;
int ToTime = DateTime.Parse(aAllocateRoom.ToTime).Hour;

if (ToTime > FromTime && FromTime < ToTime)
{
   //Code
}

所以输入如下:

FromTime - 10:00 AM  
ToTime   - 11:00 AM

因此它在时间输入如下时验证:

// Alerts FromTime is greater than ToTime as in 24 hour format 1:00 PM is 13:00
FromTime - 01:00 PM 
ToTime   - 11:00 AM

现在我想要的是我希望提供以下输入:

FromTime - 01:00 PM
ToTime   - 11:00 AM

要么

FromTime - 11:00 AM
ToTime   - 01:00 PM

但只是在这些情况下验证:

  i) FromTime - 01:00 PM //Not possible - Same for AM
     ToTime   - 01:00 PM 

 ii) FromTime - 01:00 PM //Not possible
     ToTime   - 12:00 PM 

iii) FromTime - 01:00 AM //Not possible
     ToTime   - 12:00 AM 

我想知道上述验证是否可以在JavaScript和C#中使用。

尝试

DateTime FromTime = DateTime.ParseExact(aAllocateRoom.FromTime,
                                    "hh:mm tt", CultureInfo.InvariantCulture);
DateTime TomTime = DateTime.ParseExact(aAllocateRoom.ToTime,
                                    "hh:mm tt", CultureInfo.InvariantCulture);

if (FromTime < ToTimie)
{
   //Code
}
System.Globalization.CultureInfo provider = new System.Globalization.CultureInfo("tr-TR");
        DateTime Fromtimei=DateTime.ParseExact("130000","HHmmss",provider);
        DateTime Totimei=DateTime.ParseExact("130000","HHmmss",provider);

        DateTime Fromtimeii=DateTime.ParseExact("130000","HHmmss",provider);
        DateTime Totimeii=DateTime.ParseExact("120000","HHmmss",provider);

        DateTime Fromtimeiii=DateTime.ParseExact("010000","HHmmss",provider);
        DateTime Totimeiii=DateTime.ParseExact("000000","HHmmss",provider);


        Console.WriteLine(DateTime.Compare(Fromtimeiii,Totimeiii));
        if(DateTime.Compare(Fromtimei,Totimei)==0)
        {
            Console.WriteLine(Fromtimei.ToString()+"\n"+Totimei.ToString() +"\nNot possible - Same for AM\n\n");
        }
        if(DateTime.Compare(Fromtimeii,Totimeii)==1)
        {
            Console.WriteLine(Fromtimeii.ToString()+"\n"+Totimeii.ToString() +"\nNot possible\n\n");
        }
        if(DateTime.Compare(Fromtimeiii,Totimeiii)==1)
        {
            Console.WriteLine(Fromtimeiii.ToString()+"\n"+Totimeiii.ToString() +"\nNot possible\n\n");
        }

输出:

8/17/2016 1:00:00 PM 8/17/2016 1:00:00 PM不可能 - AM相同

8/17/2016 1:00:00 PM 8/17/2016 12:00:00 PM不可能

8/17/2016 1:00:00 AM 8/17/2016 12:00:00 AM不可能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM