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


PHP Storing a date in my SQL for an appointment

这很容易,我确实搜索了它,我得到了非常复杂的答案或与我的问题不完全匹配的东西,这真的很简单

我有日期

$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 的 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 日期函数文档以了解可以使用的适当符号。

希望这有帮助。 :)

存储一个 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