如何使用这种格式在 PHP 中获取日期?
1976-03-06T23:59:59.999Z
我想要该格式的当前日期 + 10 小时。我试过这个:
date("Y-m-d",strtotime("+10 hours"));
但我看不到如何获得这种格式。
谢谢!
要准确获得您要查找的内容,您需要执行以下操作:
设置 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';
这与您正在寻找的非常接近。
date('c')
// prints 2013-01-03T18:39:07-05:00
正如其他人所说,检查文档以进行更多定制。
只需将10 * 60 * 60
秒数添加到当前time
.
date('c', time() + 10 * 60 * 60);