PHP:使用datetime()计算时间

时间:2015-01-02 22:00:15

标签: php datetime

我正在制作一个时间计算器,用于添加或减去UTC时区中当前时间的天,小时和分钟,或者存储在MySQL数据库中的用户定义日期。我目前的代码有效,但我还没有弄清楚如何调整时间格式。

代码:

$days = "+2 days";
$hours = "+1 hours";
$minutes = "+5 minutes";

$time = new DateTime(); // assumes current time
$time->setTimezone(new DateTimeZone('Europe/London'));
$time->modify("$days, $hours, $minutes");
echo $time->format("g:i A l jS F"); // outputs time

输出:

11:48 PM Sunday 4th January

使用适当的格式是什么,让解释器输出日期为" 11月4日星期日下午11点48分"?添加" N"等字符。和" J"即使用一个或多个" \"进行转义,也会弄乱(和/或争夺)日期。奇怪的是,这不会发生在半个字母表中......

我一直在搜索互联网,但没有找到解释这种现象的答案。

感谢帮助!

1 个答案:

答案 0 :(得分:11)

这应该适合你:

echo $time->format("g:i A \o\\n l \\t\h\\e jS F"); // outputs time
  • \o正常转义,因此打印为字母而不是格式说明符
  • \\n换行符(十六进制0A) - >所以双重逃避,它不是一个新的行
  • \\t标签(十六进制09) - >所以双重逃脱,它不是一个标签
  • \h正常转义,因此打印为字母而不是格式说明符
  • \\e转义(十六进制1B) - >所以双重逃脱,它不是逃避

查看有关Escape sequenceshttp://php.net/manual/en/regexp.reference.escape.php

的更多信息