我有一些PHP代码:
$time = new DateTime();
$sub = new DateInterval('P1H');
echo $time->sub($sub);
我得到这个错误:
Fatal error: Uncaught exception 'Exception' with message
'DateInterval::__construct(): Unknown or bad format (P1H)'
in C:xampphtdocsdailylogtest.php:4 Stack trace: #0
C:xampphtdocsdailylogtest.php(4): DateInterval->__construct('P1H')
#1 {main} thrown in C:xampphtdocsdailylogtest.php on line 4
我做错了什么?我怎样才能让它发挥作用?
编辑:我想我实际上会从数据库中提取输入的时间,并检查是否为+1小时。所以,很抱歉没有说清楚。
编辑#2:既然我不能回答我自己的问题。。。我想说的是:
我自己做了一个测试,效果很好!这是代码:
try {
$time = new DateTime();
$add = new DateInterval('PT1H');
$test = new DateTime();
$ing = new DateInterval('PT1H');
$time->add($add);
$test->add($ing);
if ($time->format('g:i a') == $test->format('g:i a')) {
echo 'Match';
}
else {
echo 'No match';
}
}
catch (Exception $e) {
echo $e->getMessage();
}
您的DateInterval
值有格式问题,还有语法错误:
<?php
$time = new DateTime();
$sub = new DateInterval('PT1H'); // <-- error #1
$time->add($sub); // <-- error #2
echo $time->format('c'); // Here you can format your time
在操作中查看
试着对MySQL中存储的值运行strtotime
,然后将3600
添加到其中,并将其与time()
进行比较(如果修改后的值小于time()
,则需要允许访问)