PHP time()函数返回纪元而不是当前时间


PHP time() function returns the epoch instead of the current time

我有以下php代码,用于格式化当前日期和时间:

$rawdatetime = time();
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z';
$this->debug($datetime);

格式似乎工作正常,但它一直输出它是1970;我得到以下输出:

1970-01-01T00:00:00.000Z

我猜是我的服务器配置不正确,但我的谷歌搜索没有给我任何线索。如果有帮助的话,我正在运行WAMP。

事先感谢您的任何建议。

编辑:日期和时间功能似乎工作正常;但是把它们赋值给一个变量才是问题所在。任何工作,以获得与上述相同的格式将是受欢迎的。但是我也想知道为什么这个问题会发生。

首先,您根本不需要在这里使用time(),因为如果您不向该参数传递值,date()将使用当前时间作为默认值。

其次,您使用两个单独的date()调用,由"T"分隔。注意,date()的格式可以接受硬编码字符,如T;你只需要用反斜杠转义它们,所以你不需要把它分成两个函数调用。

你的整个代码看起来像这样:

$datetime = date('Y-m-d 'T H:i:s.'0'0'0'Z');

得到2013-06-19 T 11:18:53.000Z

它对我来说工作得很好(当返回时,而不是$this->debug)。因此,要么您的PHP版本有问题,要么问题不在您的代码示例中。我是这样做的:

<?php
$rawdatetime = time();
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z';
echo $datetime,"'n";