我将日期和时间存储在我的数据库中,作为MySQL DATETIME
数据类型。插入数据库时,我使用以下PHP变量
$serverTime = strftime("%Y-%m-%d %H:%M:%S",$_SERVER['REQUEST_TIME']);
存储在数据库中的示例DATETIME是:2011-11-26 01:00:27
现在我的网站需要以下列格式显示日期:November 26, 2011
(不需要时间)
我该怎么办?我在PHP中尝试以下,但我得到了错误的输出。
echo strftime("%B %d, %Y",$serverTime)
答案 0 :(得分:5)
PHP strftime()函数希望输入为32位整数时间戳,这是自1970-01-01 00:00:00以来的秒数。
MySQL datetime的默认输出格式为YYYY-MM-DD HH:MM:SS。当您在PHP中使用此字符串时,前导数字将转换为整数2011,该整数被解释为在1970-01-01的第一个小时内。
所以你必须以另一种格式从MySQL获取日期时间。选择:
UNIX_TIMESTAMP(datetime_column)将日期时间作为一个整数来获取,你可以给PHP的strftime()函数。
DATE_FORMAT('datetime_column', '%M %d, %Y')将日期时间格式化为字符串,然后您不必使用strftime()来格式化它。
答案 1 :(得分:1)