0

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

我有日期

$day = "2014 年 1 月 8 日下午 5:00"; 我从论坛的 POST 中得到了这个日期,用户只能选择几个日期和时间,所以这个值是可控的。

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

像这样?04-18-2011 或 20091228 表示一天,时间呢?

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

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

4

2 回答 2

2

为什么要把事情复杂化?

MySQL 的时间戳语法为“YYYY-MM-DD HH:MM:SS”。幸运的是,PHP 的 date 函数可以很好地处理这个问题:

// 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']));

PHPdatestrtotime函数足够聪明,可以正确解释所有内容并将其转换为您需要插入 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 日期函数文档以了解可以使用的适当符号。

希望这可以帮助。:)

于 2013-10-15T15:56:40.217 回答
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
于 2013-10-15T15:55:39.177 回答