PHP到MySQL的日期格式问题

时间:2012-03-08 11:05:28

标签: php mysql date echo strtotime

我有PHP / MySQL日期格式问题。在这里,我创建了日期变量:

$checkDate = date("d/m/y H:i", time());
$datestrto = strtotime($checkDate); 

然后我将它插入到具有bigint数据类型的mysql表中。

当我接下来,当我需要回复日期时,我使用此代码:

echo '<td>'.date("d/m/y H:i",$row['f_uploaded_date']).'</td>';

但不是以格式D/M/Y H:i回显日期,而是以m/d/y H:i的格式回显日期。 任何人都可以解释为什么会这样,以及如何解决它?

提前谢谢你, 亚当

4 个答案:

答案 0 :(得分:1)

因此,您将unix时间戳转换为格式化的日期字符串,然后将格式化的时间字符串转换回unix timstamp并将其插入数据库。仅仅插入你在第一时间获得的unix时间戳会不会更简单?或者甚至不打扰PHP代码和

INSERT INTO sometable (id, f_uploaded_date) 
VALUES ($id, UNIX_TIMESTAMP(NOW()))

我怀疑你描述的明确问题是由于strtotime希望格式为99/99/9999的日期字符串是mm / dd / yyyy的美国风格,而不是英国使用的dd / mm / yyyy

答案 1 :(得分:1)

将它插入MySQL表时,请执行以下操作:

INSERT INTO yourtable(something,somedate) VALUES('something',str_to_date('".$checkDate."','%d/%m/%y %H:%i'))

当你从MySQL中取出它然后这样做:

SELECT *,date_format(somedate,'%D/%M/%Y %H:%i') as formateddate from yourtable

然后在php中使用:

$row['formateddate']

希望它可以帮助你:)

修改 完整的代码:

$ddate = date("d/m/y H:i", time()); 
$sql = "INSERT INTO files (rowID, file, mimetype, data, uploaded_by, uploaded_date, size, times_downloaded, description) VALUES (NULL, '$fileName', '$fileType', '$content', '$user', str_to_date('".$ddate."','%d/%m/%y %H:%i'), $fileSize, 0, '$description')";

答案 2 :(得分:1)

首先,

$checkDate = date("d/m/y H:i", time());
$datestrto = strtotime($checkDate); 

是将time()结果分配给$datestrto变量的非常有趣的方法。

接下来,您也不需要该变量,因为您可以在插入查询中使用unix_timestamp() mysql函数。

现在回答你的问题。

  

不是以D / M / Y H格式回显日期:i,它以m / d / y H:i的格式回显日期。

仔细检查你的语法。某处有拼写错误。

答案 3 :(得分:-1)

您可以从mysql数据库中提取日期格式,然后在转换为php变量时可以使用:

$num=mysql_numrows($result);

$i=0;
while ($i <= $num) {
$date=mysql_result($result,$i,"Date");
$date = date('d-m-Y', strtotime($date));
echo $date."<br>";
}

其中$ result是您的mysql查询结果,“Date”是列的名称。但是我不确定在时间上使用这种方法。

- 编辑 -

link:http://php.net/manual/en/function.date.php