0

我有以下用于格式化当前日期和时间的 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。

提前感谢您提供的任何建议。

编辑:日期和时间功能似乎工作正常;但是将它们分配给变量是问题所在。任何获得与上述相同格式的解决方法都将受到欢迎。但我也想知道为什么会出现这个问题。

4

2 回答 2

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

于 2013-06-19T15:20:08.567 回答
0

它对我来说非常有效(回显时,而不是$this->debug)。所以要么你的 PHP 版本有问题,要么问题不在你的代码示例中。这就是我所做的:

<?php

$rawdatetime = time();
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z';
echo $datetime,"\n";
于 2013-06-19T15:14:38.903 回答