-1

如何使用这种格式在 PHP 中获取日期?

1976-03-06T23:59:59.999Z

我想要该格式的当前日期 + 10 小时。我试过这个:

date("Y-m-d",strtotime("+10 hours"));

但我看不到如何获得这种格式。

谢谢!

4

3 回答 3

2

要准确获得您要查找的内容,您需要执行以下操作:

设置 PHP 时区以确保无论您的服务器或 PHP 时区如何,时间输出都将位于正确的区域(在您的情况下为“Z”)。

date_default_timezone_set('UTC');

然后计算你需要的时间(当前时间加10小时);

$timestamp = time() + (10 * 60 * 60); // now + 10 hours * 60 minutes * 60 seconds

然后转换为格式化的日期。

如果您不关心秒和毫秒,那么请使用 PHP 的内置函数来处理 ISO 8601 日期。

echo date('c', $timestamp); // Will output 1976-03-06T23:59Z

否则,您将需要确定当前微秒并手动组合日期字符串。

// Get current timestamp and milliseconds 
list($microsec, $timestamp) = explode(" ", microtime()); 

// reduce microtime to 3 dp
$microsec = substr($microsec,0,3); 

// Add 10 hours (36,000 seconds) to the timestamp
$timestamp = (int)$timestamp + (10 * 60 * 60); 

// Construct and echo the date string
echo date('Y-m-d', $timestamp) . 'T' . date('H:i:s', $timestamp) . '.' . $microsec . 'Z';
于 2013-01-03T13:46:00.463 回答
1

这与您正在寻找的非常接近。

date('c')
// prints 2013-01-03T18:39:07-05:00

正如其他人所说,检查文档以进行更多定制。

于 2013-01-03T13:44:28.447 回答
1

只需将10 * 60 * 60秒数添加到当前time.

date('c', time() + 10 * 60 * 60);
于 2013-01-03T13:22:32.480 回答