在PHP中添加小时到日期时间

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在PHP中添加小时到日期时间脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为$transactiontime的变量.我想为该变量添加6个小时.但我需要排除上午12点到早上6点之间的时间.

例如,
我于2016年1月1日下午11点进行了交易.添加6小时后,输出应为2/1/2016 11.00am.

我该怎么做呢?谢谢

解决方法

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 &amp;& $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

脚本宝典总结

以上是脚本宝典为你收集整理的在PHP中添加小时到日期时间全部内容,希望文章能够帮你解决在PHP中添加小时到日期时间所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。