PHP和&中的日期和时间函数MySQL的

时间:2011-11-25 20:57:42

标签: php mysql datetime date time

我将日期和时间存储在我的数据库中,作为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)

2 个答案:

答案 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获取日期时间。选择:

答案 1 :(得分:1)

虽然我建议使用完全SQL方法,但您可以使用PHP的DateTime类来处理PHP中的字符串(假设您运行的是PHP> 5.3):

// Pick a valid TimeZone
$date_obj = DateTime::createFromFormat( 'Y-m-d H:i:s', '2011-11-26 01:00:27', new DateTimeZone( 'America/New_York'));
echo $date_obj->format('F d, Y');

Demo