我是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;
});
});
答案 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'
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>