我有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
的格式回显日期。
任何人都可以解释为什么会这样,以及如何解决它?
提前谢谢你, 亚当
答案 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”是列的名称。但是我不确定在时间上使用这种方法。
- 编辑 -