我目前有php返回当前的日期/时间,如下所示:
$now = date("Y-m-d H:m:s");
我想做的是有一个新变量$new_time
equal $now + $hours
,其中$hours
小时数从24到800不等。
有什么建议?
我目前有php返回当前的日期/时间,如下所示:
$now = date("Y-m-d H:m:s");
我想做的是有一个新变量$new_time
equal $now + $hours
,其中$hours
小时数从24到800不等。
有什么建议?
Answers:
您可以使用类似strtotime()
函数之类的功能向当前时间戳添加内容。$new_time = date("Y-m-d H:i:s", strtotime('+5 hours'))
。
如果需要在函数中使用变量,则必须使用双引号,然后使用like strtotime("+{$hours} hours")
,但是最好使用双引号strtotime(sprintf("+%d hours", $hours))
。
strtotime('+$hours hours')
您可以使用 strtotime()实现此目的:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
正确
您可以使用strtotime()实现此目的:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours
您还可以使用Unix样式时间来计算:
$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $newtime) ."\n";
我用它,它的工作很酷。
//set timezone
date_default_timezone_set('GMT');
//set an date and time to work with
$start = '2014-06-01 14:00:00';
//display the converted time
echo date('Y-m-d H:i',strtotime('+1 hour +20 minutes',strtotime($start)));
您可以尝试lib Ouzo好东西,并以流利的方式执行此操作:
echo Clock::now()->plusHours($hours)->format("Y-m-d H:m:s");
API允许多种操作。
$date_to_be-added="2018-04-11 10:04:46";
$added_date=date("Y-m-d H:i:s",strtotime('+24 hours', strtotime($date_to_be)));
的组合日期()和的strtotime()函数就可以了。
我喜欢像那样的内置php日期表达式+1 hour
,但是由于某些原因,它们一直都掉在我头上。此外,我所知道的所有IDE都不建议使用自动完成功能。最后,虽然玩弄那些strtotime
和date
功能是没有火箭科学,我每次我需要他们谷歌的使用。
因此,我喜欢消除(至少减轻)这些问题的解决方案。这是x
为日期添加小时数的样子:
(new Future(
new DateTimeFromISO8601String('2014-11-21T06:04:31.321987+00:00'),
new NHours($x)
))
->value();
不错的好处是,您不必担心格式化结果值,它已经是ISO8601格式。
本示例使用蛋白酥皮库,您可以在此处查看更多示例。
对于给定的DateTime,您可以添加天,小时,分钟等。这是一些示例:
$now = new \DateTime();
$now->add(new DateInterval('PT24H')); // adds 24 hours
$now->add(new DateInterval('P2D')); // adds 2 days
PHP:DateTime :: add-手册https://www.php.net/manual/fr/datetime.add.php
我使用以下函数将正常的日期时间值转换为mysql datetime格式。
private function ampmtosql($ampmdate) {
if($ampmdate == '')
return '';
$ampm = substr(trim(($ampmdate)), -2);
$datetimesql = substr(trim(($ampmdate)), 0, -3);
if ($ampm == 'pm') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours != '12')
$datetimesql = date('Y-m-d H:i',strtotime('+12 hour',strtotime($datetimesql)));
}
elseif ($ampm == 'am') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours == '12')
$datetimesql = date('Y-m-d H:i',strtotime('-12 hour',strtotime($datetimesql)));
}
return $datetimesql;
}
它转换日期时间值,例如
2015-06-04 09:55 AM -> 2015-06-04 09:55
2015-06-04 03:55 PM -> 2015-06-04 15:55
2015-06-04 12:30 AM -> 2015-06-04 00:55
希望这会帮助某人。
$now = date("Y-m-d H:i:s");
date("Y-m-d H:i:s", strtotime("+1 hours $now"));