Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Php 数据库日期和JQuery日期的验证_Php_Jquery_Mysql_Database_Date - Fatal编程技术网

Php 数据库日期和JQuery日期的验证

Php 数据库日期和JQuery日期的验证,php,jquery,mysql,database,date,Php,Jquery,Mysql,Database,Date,我是PHP新手。我正在使用mysql。我必须比较两个日期,只有在两个日期匹配时才返回结果。其中一个日期来自数据库,另一个来自应存储在数据库中的jquery UI Datepicker。这里的问题是两个日期的格式不同,我无法验证它们。示例:数据库中的日期为yyyy-mm-dd格式,使用日期选择器选择的日期为dd-mm-yyyy格式。 所选日期必须以相同的dd-mm-yyyy格式显示。经过多次搜索,我发现数据库中的格式无法更改。应使用包含5个日期值的列检查所选日期。那么,我们怎样才能做到这一点呢?我

我是PHP新手。我正在使用mysql。我必须比较两个日期,只有在两个日期匹配时才返回结果。其中一个日期来自数据库,另一个来自应存储在数据库中的jquery UI Datepicker。这里的问题是两个日期的格式不同,我无法验证它们。示例:数据库中的日期为yyyy-mm-dd格式,使用日期选择器选择的日期为dd-mm-yyyy格式。 所选日期必须以相同的dd-mm-yyyy格式显示。经过多次搜索,我发现数据库中的格式无法更改。应使用包含5个日期值的列检查所选日期。那么,我们怎样才能做到这一点呢?我还没有将所选日期存储在数据库中

$(document).ready(function () {
$("#datepicker").datepicker({
   dateFormat: "dd-mm-yy"   
   });
$('form#dateform').submit(function(){   
var aselectedDate = $('#datepicker').val();
if(aselectedDate !=''){
alert('selected  ' +aselectedDate); }
return false;
  });
});

如果我得到了你想要的,你可以利用 功能。它将传递给它的datetime字符串转换为Unix时间戳,您可以使用该时间戳进行比较

如果datepicker的日期为
21-10-2015
,则函数将返回
1445385600
如果在db中选择的日期为
2015-10-21
,则函数也将返回
1445385600
这样你就可以很容易地理解这两个

$var1 = strtotime('2015-10-21');

$var2 = strtotime('21-10-2015');
然后比较可以是
如果($var1==$var2)

要比较两个日期(一个来自MySQL,另一个来自jQuery日期选择器),您首先需要将两个日期设置为相同的格式

有两种方法可以做到这一点:

具有字符串比较的第一种方法(如果希望日期以“dd-mm-yy”格式显示)

将MySQL日期转换为jQuery日期格式:

<?php
    $DateFromDatabase = "2015-10-21"; // 'yyyy-mm-dd' from MySQL Database
?>
<script>

// 'd-m-y' in php => result in 'dd-mm-yy' format
var $ConvertedDate = "<?php echo date("d-m-y",strtotime($DateFromDatabase)); ?>";

$(document).ready(function() {
    $("#datepicker").datepicker({
        dateFormat: "dd-mm-yy"   
    });
    $('#dateform').submit(function(){   
        var aselectedDate = $('#datepicker').val();
        if($ConvertedDate == aselectedDate){
            alert("Both Dates Matched...");
        } else {
            alert("Dates Not Matched...");
            return false;
        }
    });
});
</script>
<?php
    $DateFromDatabase = "2015-10-21"; // 'yyyy-mm-dd' from MySQL Database
?>
<script>
$(document).ready(function() {
    $("#datepicker").datepicker({
        dateFormat: "yyyy-mm-dd"   
    });
    $('#dateform').submit(function(){   
        var aselectedDate = $('#datepicker').val();
        if($DateFromDatabase == aselectedDate){
            alert("Both Dates Matched...");
        } else {
            alert("Dates Not Matched...");
            return false;
        }
    });
});
</script>
这里两个日期对象都必须是UTC日期对象,因为php日期将返回UTC日期,JavaScript日期将以毫秒为单位返回日期

然后我们可以使用
'getTime()'

以下是完整的解决方案:

<?php
    $DateFromDatabase = "2015-10-21"; // 'yyyy-mm-dd' from MySQL Database
?>
<script>

// Parse php UTCDate into JavaScript UTCDate
var $ConvertedDate = new Date(Date.parse("<?php echo $DateFromDatabase; ?>"));

$(document).ready(function() {
    $("#datepicker").datepicker({
        dateFormat: "dd-mm-yy"   
    });
    $('#dateform').submit(function(){ 

        var $aselectedDate = $('#datepicker').datepicker('getUTCDate');

        if($aselectedDate.getTime() < $ConvertedDate.getTime()){
            alert("Selected Date is Smaller than Database Date");
        } else  if($aselectedDate.getTime() > $ConvertedDate.getTime()){
            alert("Selected Date is Greater than Database Date");
        } else  if($aselectedDate.getTime() === $ConvertedDate.getTime()){
            alert("Selected Date is Equal To Database Date");
       }
    });
});
</script>

//将php UTCDate解析为JavaScript UTCDate
var$ConvertedDate=新日期(Date.parse(“”);
$(文档).ready(函数(){
$(“#日期选择器”)。日期选择器({
日期格式:“dd-mm-yy”
});
$('#dateform')。提交(函数(){
变量$aselectedDate=$('#datepicker')。datepicker('getUTCDate');
如果($aselectedDate.getTime()<$ConvertedDate.getTime()){
警报(“所选日期小于数据库日期”);
}else if($aselectedDate.getTime()>$ConvertedDate.getTime()){
警报(“所选日期大于数据库日期”);
}else if($aselectedDate.getTime()===$ConvertedDate.getTime()){
警报(“所选日期等于数据库日期”);
}
});
});

您想比较JQuery或PHP中的日期吗?我想比较aselectedDate(我会将此值存储在一个表中)和另一个表中的日期。您可以将datepicker dateFormat指定为“yyyy-mm-dd”,以便将其插入mysqlYes,为什么不更改datepicker的日期格式?在第一种方法中,在if($ConvertedDate==aselectedDate)中,我们不是在比较字符串值和日期值吗?
var $aselectedDate = $('#datepicker').datepicker('getUTCDate');
<?php
    $DateFromDatabase = "2015-10-21"; // 'yyyy-mm-dd' from MySQL Database
?>
<script>

// Parse php UTCDate into JavaScript UTCDate
var $ConvertedDate = new Date(Date.parse("<?php echo $DateFromDatabase; ?>"));

$(document).ready(function() {
    $("#datepicker").datepicker({
        dateFormat: "dd-mm-yy"   
    });
    $('#dateform').submit(function(){ 

        var $aselectedDate = $('#datepicker').datepicker('getUTCDate');

        if($aselectedDate.getTime() < $ConvertedDate.getTime()){
            alert("Selected Date is Smaller than Database Date");
        } else  if($aselectedDate.getTime() > $ConvertedDate.getTime()){
            alert("Selected Date is Greater than Database Date");
        } else  if($aselectedDate.getTime() === $ConvertedDate.getTime()){
            alert("Selected Date is Equal To Database Date");
       }
    });
});
</script>