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" 这样的字符会弄乱 (and/or 乱码) 日期,即使使用一个或多个“\”进行转义也是如此。奇怪的是,一半的字母表不会发生这种情况...
我一直在网上搜索,但没有找到解释这种现象的答案。
感谢帮助!
这应该适合你:
echo $time->format("g:i A \o\n l \t\h\e jS F"); // outputs time
\o
正常转义,因此它被打印为字母而不是格式说明符
\n
换行符(十六进制 0A)-> 双重转义,它不是换行符
\t
制表符(十六进制 09)-> 双重转义,它不是制表符
\h
正常转义,因此它被打印为字母而不是格式说明符
\e
escape (hex 1B) -> 双重转义而不是转义
查看有关 Escape sequences
的更多信息:http://php.net/manual/en/regexp.reference.escape.php
我正在制作一个时间计算器,可以从 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" 这样的字符会弄乱 (and/or 乱码) 日期,即使使用一个或多个“\”进行转义也是如此。奇怪的是,一半的字母表不会发生这种情况...
我一直在网上搜索,但没有找到解释这种现象的答案。
感谢帮助!
这应该适合你:
echo $time->format("g:i A \o\n l \t\h\e jS F"); // outputs time
\o
正常转义,因此它被打印为字母而不是格式说明符\n
换行符(十六进制 0A)-> 双重转义,它不是换行符\t
制表符(十六进制 09)-> 双重转义,它不是制表符\h
正常转义,因此它被打印为字母而不是格式说明符\e
escape (hex 1B) -> 双重转义而不是转义
查看有关 Escape sequences
的更多信息:http://php.net/manual/en/regexp.reference.escape.php