验证数据库日期和JQuery日期

时间:2015-10-21 04:17:02

标签: php jquery mysql database date

我是PHP的新手。我正在使用mysql。我必须比较两个日期并仅在两个日期匹配时返回结果。其中一个日期来自数据库,另一个来自jquery UI Datepicker,它应存储在数据库中。这里的问题是两个日期的格式不同,我无法验证它们。示例:数据库中的日期采用yyyy-mm-dd格式,使用datepicker选择的日期采用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;
  });
});

2 个答案:

答案 0 :(得分:2)

如果我得到你想要的东西,你可以使用strtotime 功能。它将传递给它的日期时间字符串转换为Unix时间戳,您可以将其用于比较。

如果datepicker的日期为21-10-2015,则该函数将返回1445385600 如果db中的日期是2015-10-21,那么该函数也将返回1445385600 所以你可以把两个easiyl联合起来。

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

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

然后可以将比较作为if($var1 == $var2)

答案 1 :(得分:0)

要比较两个日期(一个来自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>

使用字符串比较的第二种方法(如果日期格式不是问题)

将DatePicker日期格式更改为MySQL日期格式:

<?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>

与各种运算符进行日期对象比较的第一种方法

这里我们需要MySQL Date String和DatePicker String的Date Object。要做那件事,

1)通过JavaScript中的MySQL数据库解析日期字符串来创建日期对象

var $ConvertedDate = new Date(Date.parse("<?php echo $DateFromDatabase; ?>"));

2)从DatePicker方法'getUTCDate'

获取UTC日期对象
var $aselectedDate = $('#datepicker').datepicker('getUTCDate');

这里两个日期对象必须是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>