这很容易,我确实搜索了它,我得到了非常复杂的答案或与我的问题不完全匹配的东西,这真的很简单
我有日期
$day = "Jaunuary 8th 2014 5:00pm";我从论坛的 POST 中获得了这个日期,用户只能选择几个日期和时间,因此值是受控的。
插入日期和时间的最佳方法是什么?
像这样? 04-18-2011 或 20091228 天,时间呢?
当我检索此信息时,目标是我可以按时间和日期对其进行排序,以便我可以按日期顺序打印出来
我可能应该将日期和时间作为一个变量插入在一起,对吗?
为什么要把事情复杂化?
MySQL的时间戳语法为"YYYY-MM-DD HH:MM:SS"。幸运的是,PHP 的日期函数可以很好地处理这个问题:
// the POST variable you retrieved, converted to a time via strtotime(), then converted to a date via date()
$appt = date('Y-m-d H:i:s',strtotime($_POST['appointment_datetime']));
PHP 的 date
和 strtotime
函数足够智能,可以正确解释所有内容并将其转换为您需要插入到 MySQL 中的格式:
"INSERT INTO someTable (AppointmentDate) VALUES ('$appt');"
然后,当您从数据库中检索它时,您可以重新格式化它(显示基本的mysqli
语法,而不是使用正确的绑定,只是为了便于解释):
$appt = mysqli_query($link,"SELECT AppointmentDate FROM someTable;");
while($apptRow = mysqli_fetch_array($appt,MYSQL_ASSOC)){
echo date('F j, Y g:i a',strtotime($apptRow['AppointmentDate']));
}
这将呼应日期的"简单英语"版本。这显然是简单的,您可能会将其捕获到变量中并适当地显示,但您应该了解要点。如果您想采用不同的格式,可以查阅 PHP 日期函数文档以了解可以使用的适当符号。
希望这有帮助。 :)
存储一个 Unix 时间戳,然后你可以以你喜欢的任何格式显示它
$ts=time(); // Store that value in an INT (11)
然后你可以像
echo date("F j, Y, g:i a",$YourStoredTimestamp); // eg March 10, 2001, 5:16 pm