PHP:使用 datetime() 进行时间计算


PHP: time calculation using 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

使用什么适当的格式,让口译员将日期输出为"1 月 4 日星期日晚上 11:48"?添加像"N"和"J"这样的字符会弄乱(和/或打乱)日期,即使使用一个或多个"''"转义也是如此。奇怪的是,这不会发生在一半的字母表上......

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

感谢您的帮助!

这应该适合您:

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 sequences : http://php.net/manual/en/regexp.reference.escape.php