这很简单,我确实搜索过它,我得到了非常复杂的答案或与我的问题完全不符合的事情,它非常简单
我有日期
$ day =“Jaunuary 8th 2014 5:00 pm”; 我从论坛的POST获得了这个日期,用户只能选择几个日期和时间,以便控制价值。
什么是插入日期和时间的最佳方式?
像这样? 04-18-2011或20091228的一天和时间怎么样?当我检索此信息时,目标是这样我可以按时间和日期对其进行排序,以便我可以按日期排序打印出来
我应该将日期和时间一起作为一个变量正确插入吗?
答案 0 :(得分:2)
为什么复杂化?
对于时间戳,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 date function documentation了解可以使用的相应符号。
希望这会有所帮助。 :)
答案 1 :(得分:1)
存储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