🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 表示一个时间周期的类。 一个时间周期表示固定量的时间(多少年,月,天,小时等), 也可以表示一个字符串格式的相对时间, 当表示相对时间的时候,字符串格式是DateTime类的构造函数所支持的格式。 <br> ``` DateInterval { /* 属性 */ public integer $y ; public integer $m ; public integer $d ; public integer $h ; public integer $i ; public integer $s ; public float $f ; public integer $invert ;//1表示一个负的时间周期,0表示一个正的时间周期 public mixed $days ; /* 方法 */ public __construct ( string $interval_spec ) public static createFromDateString ( string $time ) : DateInterval public format ( string $format ) : string } ``` ``` // 构造函数参数 string $interval_spec,创建新的DateInterval对象 $datetime = new DateTime('2019-07-14 14:00:00'); $interval = new DateInterval('P2W'); //P2W 表示两周,14天 dump($interval); object(DateInterval)#227 (16) { ["y"] => int(0) ["m"] => int(0) ["d"] => int(14) ["h"] => int(0) ["i"] => int(0) ["s"] => int(0) ["f"] => float(0) ["weekday"] => int(0) ["weekday_behavior"] => int(0) ["first_last_day_of"] => int(0) ["invert"] => int(0) ["days"] => bool(false) ["special_type"] => int(0) ["special_amount"] => int(0) ["have_weekday_relative"] => int(0) ["have_special_relative"] => int(0) } // DateTime类的add方法:向DateTime对象添加天数、月数、年数、小时数、分钟数和秒数 $datetime->add($interval); echo $datetime->format('Y-m-d H:i:s'); //加14天, 2019-07-28 14:00:00 // DateTime类的sub方法:从DateTime对象中减去天、月、年、小时、分钟和秒 $datetime->sub($interval); //减14天, 2019-07-14 14:00:00 echo $datetime->format('Y-m-d H:i:s'); // DateTime类的diff方法:返回表示为DateInterval的两个DateTime对象之间的差异。返回DateInterval对象 $date1 = new DateTime("2019-11-04"); $date2 = new DateTime("2019-11-05"); $diff_interval = $date1->diff($date2); dump($diff_interval); // DateInterval 的format方法,格式参考‘DateInterval的format格式化参数’ echo $diff_interval->format('%R%a days'); // +1 days // DateInterval:根据字符串创建DateInterval对象 // 以下每组的运行结果都相等 $i = new DateInterval('P1D'); $i = DateInterval::createFromDateString('1 day'); $i = new DateInterval('P2W'); $i = DateInterval::createFromDateString('2 weeks'); $i = new DateInterval('P3M'); $i = DateInterval::createFromDateString('3 months'); $i = new DateInterval('P4Y'); $i = DateInterval::createFromDateString('4 years'); $i = new DateInterval('P1Y1D'); $i = DateInterval::createFromDateString('1 year + 1 day'); $i = new DateInterval('P1DT12H'); $i = DateInterval::createFromDateString('1 day + 12 hours'); $i = new DateInterval('PT3600S'); $i = DateInterval::createFromDateString('3600 seconds'); ``` <br> 构造函数参数 string $interval_spec 如:P2W。格式以字母P开头,每个持续时间段由一个整数值表示,后跟一个周期标志符。 如果持续时间包含时间元素(表中的HMS),则在规范的该部分之前加上字母T。 | 周期标志符 | 描述| | --- | --- | | *Y* | 年| | *M* | 月| | *D* | 日| | *W* | 周。这些被转换成天,所以不能与\*D组合\*. | | *H* | 小时| | *M* | 分钟 | | *S* | 秒 |