繁体   English   中英

PHP / MySQL存储和搜索日期

[英]PHP / MySQL storing and searching dates

像许多人一样,我对PHP和MySQL中的许多日期函数感到困惑。 我需要的是能够在MySQL中存储日期并能够以人类可读的格式在屏幕上查看日期,使用标准Web表单按月,年或两者的组合进行搜索,或者对其进行排序几个月或几年。

示例搜索将是过去5年中所有的费用记录。

我有一个javascript日历,在表格中输入月份为02-12-2011。

什么是最好的格式。 该领域应该是什么?

谢谢

请使用DateTime对象。

将日期存储在mysql中作为DATE格式。

写数据时

$date = new DateTime($_POST['date']);

or

$date = DateTime::createFromFormat('d-m-Y', $_POST['date']);

$query = sprintf("INSERT INTO `data` SET `date` = '%s'", $date->format('Y-m-d'))

读取数据时,创建一个DateTime对象。

$date = new DateTime($row['date']);

然后你可以用你想要的任何格式打印它,例如你的javascript格式:

echo $date->format('d-m-Y');

看到

http://www.php.net/manual/en/class.datetime.php

和日期格式:

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

就搜索而言,您可以在字段上使用mysql Date函数。

对于过去5年2月份的所有记录。

SELECT * FROM `data` WHERE MONTH(`date`) = 2 AND YEAR(`date`) >= YEAR(NOW()) - 5

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

MySQL中的列类型应该是date

它是一个日期,因此将其存储为DATE列。 您可以在SQL查询中使用UNIX_TIMESTAMP()或在PHP中使用strtotime,将其转换回可以传递给php date()函数的值,以输出您想要的任何格式日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM