Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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
日期与javascript的比较_Javascript_Php_Ajax - Fatal编程技术网

日期与javascript的比较

日期与javascript的比较,javascript,php,ajax,Javascript,Php,Ajax,我想将当前日期与存储在db中的日期进行比较,为此我使用以下代码 <script> $("#registerButton").click(function() { var first = $("#scantime").val(); var second = $("#scanbartime").val(); if (parseInt(first.replace(/-/g,""),10) > parseInt(second.replace(/-/g,""),10)){

我想将当前日期与存储在db中的日期进行比较,为此我使用以下代码

<script>
$("#registerButton").click(function() {
var first = $("#scantime").val();
var second = $("#scanbartime").val();
if (parseInt(first.replace(/-/g,""),10) > parseInt(second.replace(/-/g,""),10)){
        alert("Ticket has Expired");
    }
    else {
    var signintime =$("#scantime").val();
    var id = $("#id").val();
var y = new Date();
var y1=y.getFullYear() + "-" +(y.getMonth()+1) + "-" + y.getDate();
y.setHours(y.getHours()+4);
y1 = y1 + "  " + y.getHours()+ ":" + y.getMinutes() + ":" + y.getSeconds();
document.getElementById('scanbartime').value = y1;
var expdate=y1;
       $.ajax({
            url: "updatescan.php",
            method: "POST",
       data: {signintime:signintime,expdate:expdate,id:id} , 
dataType:"text",   
            success: function(data)
                        {                   
                        }
        });
    }
    });
</script>
但是警报也不会被启用
谢谢

您可以创建Javascript日期对象,并通过先解析后比较来设置值:

> var first = new Date('2016-5-26 21:31:13')
> var second = new Date('2016-05-26 17:31:11.000000')
> first > second
true

您可以创建Javascript日期对象,并通过分析第一个和第二个对象,然后比较来设置值:

> var first = new Date('2016-5-26 21:31:13')
> var second = new Date('2016-05-26 17:31:11.000000')
> first > second
true

我的看法如下:

The format of scantime Is like 2016-5-26 21:31:13 and the format of scanbartime is like 2016-05-26 17:31:11.000000 
这就是如何将这些字符串转换为有效的日期对象格式,然后比较日期对象

// Turn 2016-5-26 21:31:13 into valid Date string to parse
var time1 = '2016-5-26 21:31:13';
time1 = time1.split(' ');
var split= time1[0].split('-');
for(var i = 0; i < split.length; i++){
  if( split[i] < 10 )
    split[i] = '0'+split[i];
}
var date1 = new Date(split.join('-') + 'T' + time1[1]);

// Turn 2016-05-26 17:31:11.000000 into a valid Date string
// The zeroes at the end dont matter
var time2 = '2016-05-26 17:31:11.000000';
time2 = time2.replace(' ', 'T');
var date2 = new Date(time2);

// Compare the dates
console.log(date1 < date2); // False
console.log(date2 < date1); // True
//将2016-5-26 21:31:13转换为要分析的有效日期字符串
风险值时间1='2016-5-26 21:31:13';
time1=time1.拆分(“”);
var split=time1[0]。拆分('-');
对于(变量i=0;i

从我所看到的情况来看,关键在于月和日应该是零填充的,两个字符串之间的空间应该是T。第二个字符串中毫秒的额外尾随零是不相关的。

我使用了以下内容:

The format of scantime Is like 2016-5-26 21:31:13 and the format of scanbartime is like 2016-05-26 17:31:11.000000 
这就是如何将这些字符串转换为有效的日期对象格式,然后比较日期对象

// Turn 2016-5-26 21:31:13 into valid Date string to parse
var time1 = '2016-5-26 21:31:13';
time1 = time1.split(' ');
var split= time1[0].split('-');
for(var i = 0; i < split.length; i++){
  if( split[i] < 10 )
    split[i] = '0'+split[i];
}
var date1 = new Date(split.join('-') + 'T' + time1[1]);

// Turn 2016-05-26 17:31:11.000000 into a valid Date string
// The zeroes at the end dont matter
var time2 = '2016-05-26 17:31:11.000000';
time2 = time2.replace(' ', 'T');
var date2 = new Date(time2);

// Compare the dates
console.log(date1 < date2); // False
console.log(date2 < date1); // True
//将2016-5-26 21:31:13转换为要分析的有效日期字符串
风险值时间1='2016-5-26 21:31:13';
time1=time1.拆分(“”);
var split=time1[0]。拆分('-');
对于(变量i=0;i

从我所看到的情况来看,关键在于月和日应该是零填充的,两个字符串之间的空间应该是T。第二个字符串中毫秒的额外尾随零是不相关的。

scantime和scanbartime的值从db“2016-5-26 21:31:13”中回显。您有这个值,因此可以将其拆分为2个数组。然后用“-”和“:”再次拆分,用这些值设置firstDateObject。第二个也是一样。scantime和scanbartime的值从db“2016-5-26 21:31:13”中回显。您有这个值,因此可以将其拆分为2个阵列。然后用“-”和“:”再次拆分,用这些值设置firstDateObject。第二种情况也是一样。它不起作用可能是缺少{on if(split[i]<10)它不起作用可能是缺少{on if(split[i]<10)