我使用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
,我至少可以使用一个变量来表示$date2
和if-else
不在3个月的长度(3个月至少90天)。我可以简单地使用{{1}},但是为了精确,还有另一种方法(内置PHP函数或库)来确定我的值是否在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)
DateTime::diff
。DateInterval
,点击指向its documentation。format
method。使用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";
}