我有一些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:\xampp\htdocs\dailylog\test.php:4 Stack trace: #0
C:\xampp\htdocs\dailylog\test.php(4): DateInterval->__construct('P1H')
#1 {main} thrown in C:\xampp\htdocs\dailylog\test.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();
}
答案 0 :(得分:2)
您的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
答案 1 :(得分:0)
尝试对存储在MySQL中的值运行strtotime
,然后向其中添加3600
并将其与time()
进行比较(如果修改后的值小于{,则希望允许访问{1}})