我目前有php获取当前时间/日期,如下:
$now = date("Y-m-d H:m:s");
ID喜欢做的是新变量$new_time
等于$now
+ $hours
。 $hours
是一个小时数,范围从24到800。
有什么建议吗?
答案 0 :(得分:96)
您可以使用strtotime()
函数之类的内容向当前时间戳添加内容。 $new_time = date("Y-m-d H:i:s", strtotime('+5 hours'))
。
如果您需要函数中的变量,则必须使用双引号,然后使用strtotime("+{$hours} hours")
,但最好使用strtotime(sprintf("+%d hours", $hours))
。
答案 1 :(得分:32)
另一个解决方案(面向对象)是使用DateTime :: add
示例:
$now = new DateTime(); //current date/time
$now->add(new DateInterval("PT{$hours}H"));
$new_time = $now->format('Y-m-d H:i:s');
答案 2 :(得分:18)
您可以使用strtotime()来实现此目标:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
答案 3 :(得分:9)
<强>正确强>
您可以使用strtotime()来实现此目的:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours
答案 4 :(得分:4)
您还可以使用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";
答案 5 :(得分:4)
$now = date("Y-m-d H:i:s");
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
答案 6 :(得分:0)
我使用以下函数将正常的日期时间值转换为mysql日期时间格式。
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
希望这会对某人有所帮助。
答案 7 :(得分:0)
$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)));
date()和strtotime()函数的组合将起到作用。
答案 8 :(得分:0)
我使用它,它的工作很酷。
//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)));
答案 9 :(得分:0)
我喜欢诸如+1 hour
之类的内置php日期表达式,但是由于某些原因,它们始终不知所措。此外,据我所知,没有一个IDE建议使用自动完成功能。而且,最后,尽管与那些strtotime
和date
函数玩杂耍并不是火箭科学,但我每次需要时都必须用Google搜索它们的用法。
这就是为什么我喜欢消除(至少缓解)这些问题的解决方案。将日期添加x
小时的样子如下:
(new Future(
new DateTimeFromISO8601String('2014-11-21T06:04:31.321987+00:00'),
new NHours($x)
))
->value();
作为一个不错的选择,您不必担心格式化结果值,它已经是ISO8601格式。
此示例使用了蛋白酥皮库,您可以查看更多示例here。
答案 10 :(得分:0)
对于给定的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
答案 11 :(得分:-1)
在“现在”添加2个小时
fun readAsset(context: Context, fileName: String): String =
context
.assets
.open(fileName)
.bufferedReader()
.use(BufferedReader::readText)
或
$date = new DateTime('now +2 hours');
或
$date = date("Y-m-d H:i:s", strtotime('+2 hours', $now)); // as above in example
答案 12 :(得分:-2)
$now = date("Y-m-d H:i:s");
date("Y-m-d H:i:s", strtotime("+1 hours $now"));