2014-07-13 59 views
2

我收到格式DD/MM/YY(jQuery的日期选择器)从网页表单日期值exmp:13/07/2014PHP转换日期与月份和日期值的函数问题

$date_from = $_POST['date_from']; 
$date_to = $_POST['date_to']; 

$newdate1 = date("Y-m-d 00:00:00", strtotime($date_from)); 
$newdate2 = date("Y-m-d 23:59:59", strtotime($date_to)); 

我需要打印的所有记录从数据库其中date是这两个日期之间:

SELECT * FROM db WHERE date BETWEEN '$newdate1' AND '$newdate2'" 

它做工精细,直到今天,因为当我尝试选择今天的日期13/04/1014(jQuery的),并转换为格式化年月日00:00:00认为脚本13是月份和返回日期1970-01-01

回答

1

函数strtotime预计会被赋予一个包含英文日期格式的字符串。

一个基本的解决方案是将您的格式英文格式

echo date('d-m-Y', strtotime(str_replace('/', '-', '13/07/2014'); 

输出

13-07-2014 

在你的代码

$date_from = $_POST['date_from']; 
$date_to = $_POST['date_to']; 

$newdate1 = date("Y-m-d 00:00:00",strtotime(date('d-m-Y', strtotime(str_replace('/', '-', $date_from))))); 
$newdate2 = date("Y-m-d 00:00:00",strtotime(date('d-m-Y', strtotime(str_replace('/', '-', $date_to))))); 
1

如SQL查询所需的格式是不同的,那么输入格式,那么它会在多个日期创建问题。最好先将日期转换为适当的格式,然后运行查询。

<?php 
//Creating a function to convert date to required format 
function formattedDate($dateStr, $inputFormat, $outputFormat) { 
    $date = DateTime::createFromFormat($inputFormat, $dateStr); 
    echo $date->format($outputFormat); 
} 

//Get input 
$date_from = $_POST['date_from']; 
$date_to = $_POST['date_to']; 

//Get formatted date values 
$newdate1 = formattedDate($date_from, "d/m/Y", "Y-m-d H:i:s"); 
$newdate2 = formattedDate($date_to, "d/m/Y", "Y-m-d H:i:s"); 
?> 
+0

+1好的解决方案! –

+0

这种格式的SQL服务器不适用于mysql – Klapsius

+0

@Syed Qarib东西错了 – Klapsius

相关问题