DateTime格式参考&确定几天到几个月

时间:2012-11-21 09:33:10

标签: php date datetime

我使用DateTime来获取两个日期的差异。直接来自PHP文档示例:

$date1 = new DateTime('2012/03/15');
$date2 = new DateTime('2012/6/9');
$interval = $date1->diff($date2,true);
$days = $interval->format('%R%a days');

这会产生 +86 days ,我想知道我在哪里可以获得那些%R%a的参考资料我不知道它们是什么意思,但我只是看到了%R = + %a is number of days时的86

其次,现在通过使用值 $date1 ,我至少可以使用一个变量来表示$date2if-else不在3个月的长度(3个月至少90天)。我可以简单地使用{{1}},但是为了精确,还有另一种方法(内置PHP函数或库)来确定我的值是否在3个月的时间内?

3 个答案:

答案 0 :(得分:2)

你也可以找到in the documentation

%   Literal %   %
Y   Years, numeric, at least 2 digits with leading 0    01, 03
y   Years, numeric  1, 3
M   Months, numeric, at least 2 digits with leading 0   01, 03, 12
m   Months, numeric 1, 3, 12
D   Days, numeric, at least 2 digits with leading 0 01, 03, 31
d   Days, numeric   1, 3, 31
a   Total number of days as a result of a DateTime:diff() or (unknown) otherwise    4, 18, 8123
H   Hours, numeric, at least 2 digits with leading 0    01, 03, 23
h   Hours, numeric  1, 3, 23
I   Minutes, numeric, at least 2 digits with leading 0  01, 03, 59
i   Minutes, numeric    1, 3, 59
S   Seconds, numeric, at least 2 digits with leading 0  01, 03, 57
s   Seconds, numeric    1, 3, 57
R   Sign "-" when negative, "+" when positive   -, +
r   Sign "-" when negative, empty when positive -,

答案 1 :(得分:2)

  1. 查看DateTime::diff
  2. 的文档
  3. 看到它返回DateInterval,点击指向its documentation
  4. 的链接
  5. 阅读documentation for its format method
  6. 使用if ($interval->format('%m') > 3)测试是否超过三个月。请注意,这只是间隔的月份部分,例如“2年3个月”的“3”。多年来也考虑到了这些年份。你不应该仅仅使用天数,因为一个月内没有固定的天数。 90天和3个月不是一回事。

答案 2 :(得分:1)

文档

http://www.php.net/manual/en/dateinterval.format.php

$months = 3;
if ($interval->format('%m') < $months) {
   echo "Less than $months months";
}