在PHP中添加小时到日期时间
发布时间:2020-12-13 16:59:48 所属栏目:PHP教程 来源:网络整理
导读:我有一个名为$transactiontime的变量.我想为该变量添加6个小时.但我需要排除上午12点到早上6点之间的时间. 例如, 我于2016年1月1日下午11点进行了交易.添加6小时后,输出应为2/1/2016 11.00AM. 我该怎么做呢?谢谢 解决方法 DateTime是 PHP中的一个很棒的功能
我有一个名为$transactiontime的变量.我想为该变量添加6个小时.但我需要排除上午12点到早上6点之间的时间.
例如, 我该怎么做呢?谢谢 解决方法
DateTime是
PHP中的一个很棒的功能
$string = '1/1/2016 11.00PM'; $date = new DateTime($string); $interval = new DateInterval('PT6H'); $date->add($interval); // Now add another 6 hours while we are between 12:00 AM and 6:00 AM while($date->format('G') >= 0 && $date->format('G') <= 6) { $date->add($interval); } echo $date->format('H:i:s M-j-Y'); 这输出所需的 11:00:00 Jan-2-2016 更新 在我们广泛了解这条特定代码的逻辑之后,我们得出结论,午夜到早上6点之间完成的任何交易都应该从早上6点开始增加6小时(所以,基本上,设置为正午). 每个其他交易通常会增加6个小时.但是如果在加上那6个小时之后,时间间隔在午夜和早上6点之间,那么只有初始和午夜之间的相应时间量和其余时间应该加到早上6点,这基本上只是增加了12个小时到初始值. 所以这是修改后的代码: $date = new DateTime($string); $interval = new DateInterval('PT6H'); if($date->format('G') >= 0 && $date->format('G') <= 6) { $date->setTime(12,0); } else { $date->add($interval); if($date->format('G') >= 0 && $date->format('G') <= 6) { $date->add($interval); } } echo $date->format('H:i:s M-j-Y'); 示例#1 // input $string = '1/1/2016 3.00AM'; //output 12:00:00 Jan-1-2016 // this is midday 例#2 // input $string = '1/1/2016 11.00AM'; //output 17:00:00 Jan-1-2016 // this is 5:00 PM 例#3 // input $string = '1/1/2016 11.00PM'; //output 11:00:00 Jan-2-2016 // this is 11:00 AM (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |