0

可能重复:
使用 PHP 格式化 SQL 时间戳

我的 SQL 表中有一个具有默认当前时间戳值的列。我正在尝试使用更易读的格式输出它date()

但是,无论我使用哪种格式,我总是得到相同的日期:1970-01-01 00:33:32

以下是数据库中当前时间戳的示例值:2012-08-09 06:37:58

下面是我用来尝试将其“转换”为可读格式的代码:

$value['current_date']// is the var from the database.(containing 2012-08-09 06:37:58)
$somevar = date('Y-m-d H:i:s', $value['current_date']);

提前致谢。

4

3 回答 3

1

您的问题是您在第二个参数中使用了错误的值。date() 函数需要一个 UNIX 样式的时间戳作为第二个参数,而不是日期的字符串表示形式。使用strtotime() 函数更正此问题:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date']));

但是,正如其他人指出的那样,您为什么要费心进行这种格式化?您想要的格式样式已经在数据库中。它应该很简单:

echo $value['current_date'];
于 2012-08-11T02:49:23.293 回答
0

首先:如果时间戳已经以所需的格式存在,为什么还要格式化它?

关于实际问题:

http://de2.php.net/manual/en/function.date.php

date()仅接受 unix 时间戳(自 1970-1-1 00:00:00 UTC 以来的秒数)或根本不接受时间戳。如果您想使用像您这样的时间戳,您需要先使用 、 或 创建一个date_create()unixmktime时间戳strtotime

于 2012-08-11T02:50:59.440 回答
0

您遇到的问题是因为 的第二个参数date()应该是时间戳,并且由于您传递的是包含 的原始字符串2012-08-09 06:37:58,因此 php 不知道该怎么做。

如下修改您的代码,它应该可以工作:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date']));

'Y-m-d H:i:s'您现在可以根据需要使用任何日期格式代替

于 2012-08-11T02:51:09.860 回答