PHP在我的SQL中存储日期以进行约会

时间:2013-10-15 15:52:56

标签: php sql date

这很简单,我确实搜索过它,我得到了非常复杂的答案或与我的问题完全不符合的事情,它非常简单

我有日期

$ day =“Jaunuary 8th 2014 5:00 pm”; 我从论坛的POST获得了这个日期,用户只能选择几个日期和时间,以便控制价值。

什么是插入日期和时间的最佳方式?

像这样? 04-18-2011或20091228的一天和时间怎么样?

当我检索此信息时,目标是这样我可以按时间和日期对其进行排序,以便我可以按日期排序打印出来

我应该将日期和时间一起作为一个变量正确插入吗?

2 个答案:

答案 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的datestrtotime函数非常智能,可以正确解释所有内容并将其转换为插入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