我怎样才能将 sql 当前时间戳并输出为 php date()


How can i take sql current timestamp and output as php date()?

可能的重复项:
使用 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']);

提前谢谢。

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

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

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

echo $value['current_date'];

您遇到的问题是因为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'

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

关于实际问题:

请参阅 http://de2.php.net/manual/en/function.date.php

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