我有以下用于格式化当前日期和时间的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
我的猜测是我的服务器配置不正确,但我的Google搜索没有给我任何线索。如果有帮助,我正在运行WAMP。
提前感谢你提出的任何建议。
编辑:似乎日期和时间功能正常;但是将它们分配给变量是什么问题。任何可以获得与上述相同格式的工作都会受到欢迎。但我也想知道为什么会出现这个问题。
答案 0 :(得分:1)
首先,您根本不需要使用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
给出了{{1}}
答案 1 :(得分:0)
它对我来说很完美(当回声时,而不是$this->debug
)。所以要么你有一个错误的PHP版本,或者你的代码示例中没有问题。这就是我所做的:
<?php
$rawdatetime = time();
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z';
echo $datetime,"\n";