如何在PHP中修改已有的DateInterval实例?
直接修改已有DateInterval实例移除秒数
当然可以直接修改现有DateInterval实例,不用新建。PHP的DateInterval类提供了可直接读写的公共属性,针对你的需求,只需要把秒数对应的属性s设为0就行:
$di = new \DateInterval("PT3H20M10S"); // 3小时20分10秒 $di->s = 0; // 直接清零秒数 // 现在$di的时长就是3小时20分
如果遇到秒数超过60的情况(比如PT0H0M65S),需要把多余的秒数进位到分钟的话,可以这么处理:
$di = new \DateInterval("PT0H0M65S"); // 把超出60的秒数转成分钟 $di->i += intdiv($di->s, 60); $di->s = $di->s % 60; // 要是不需要进位,直接$di->s=0就行
另外提一句,DateInterval的其他时间属性比如y(年)、m(月)、h(时)、i(分)也都是可以直接修改的,按需调整就行。
内容的提问来源于stack exchange,提问作者Martin Braun
相关产品推荐
相关产品推荐

