Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查当前时间_Php - Fatal编程技术网

PHP检查当前时间

PHP检查当前时间,php,Php,我有一个关于检查提交时间的当前时间的小问题 date_default_timezone_set('Asia/Hong_Kong'); $date = date('Y-m-d H:i:s'); 我想这样做 if(isset($_POST['submit']) { if (date (H)< 1pm) { /* get the time difference or */ echo " you're late $late "; // do something } else if

我有一个关于检查提交时间的当前时间的小问题

date_default_timezone_set('Asia/Hong_Kong');
$date = date('Y-m-d H:i:s');
我想这样做

    if(isset($_POST['submit']) {


if (date (H)< 1pm) {
/* get the time difference or */ echo " you're late $late ";
// do something  }
else if (date (H) < 4pm) {
/get the time difference or */ echo " you're late $late ";
// do something }
else if (date (H) < 7pm {
/* get the time difference or */echo " you're late $late ";
// do something }
}
if(设置($\u POST['submit'])){
如果(日期(小时)<下午1点){
/*获取时差或*/echo“你迟到了$late”;
//做点什么}
否则,如果(日期(H)<下午4点){
/获取时差或*/echo“你迟到了$late”;
//做点什么}
否则,如果(日期(小时)<7点{
/*获取时差或*/echo“你迟到了$late”;
//做点什么}
}
但是我不知道如何计算迟交的
$late

而且,
$late
是要知道提交的时间有多少小时/分钟

取决于您试图显示的内容…我假设您想显示两个时间(日期时间)之间的差异。您可以这样做:

$datetime1 = new DateTime('2071-02-14 02:28:30');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);

echo "\ndate1: " . $datetime1->format('Y-m-d H:i:s'); 
echo "\ndate2: " . $datetime2->format('Y-m-d H:i:s'); 
echo "\ndiff: " . $interval->format('%R%H hours'); 
查看用于格式化间隔输出的

如果只想根据提交请求的时间显示,只需使用

$datetime = new DateTime();
$hours = $datetime->format('H');
然后使用$hours变量来决定该做什么。希望这能有所帮助。
有关该类的更多文档。

您可以使用
DateTime::createFromFormat()
从给定时间创建一个dateobject,并使用
new DateTime()
进行比较

$now = new DateTime();
if ($now->format("H:i") > "13:00") {
    $deadline = DateTime::createFromFormat("H:i", "13:00");
    $diff = $now->diff($deadline);
    echo "You are ".$diff->h." hours and ".$diff->i." minutes late";
}
如果您在14:04提交表单,将输出上述代码段

你迟到了1小时4分钟


$late
应该是什么?他们迟到了多少小时/分钟?是的,先生,我现在就编辑我想这些是间隔时间(下午1点、下午4点、晚上7点),但用户何时未迟到?如果用户未迟到,我会自动将他们重定向到Sumbit时间段,但重要的是获取迟到时间我想使用我的时区显示时间当前时间,但当我单击提交按钮时,它将显示迟到,如例所示,我在1:05单击它,然后显示youre late 00:05:00就像那样,我还需要显示代码只显示的时间time@JustAngelo您知道我给了您一个链接,其中包含format interval…$interval->format(“%H:%i:%S”)的所有参数;对于您在评论中描述的案例,但在您的原始问题中根本没有提及。我正在实施这一点,但我仍然有一些错误。您为什么不试试呢?;-)但是JSFIDLE不起作用,PHP!=js然后你需要用HTML表单和你在这里使用的PHP更新问题。嗨,我试图在(time)中将$diff插入数据库
time\u,但是我遇到了这个错误(可捕获的致命错误:类DateInterval的对象无法转换为字符串),你需要使用
$diff->format()
并指定要插入的格式。您要插入的列是什么类型的?我正在尝试将其放入我的查询
$diff->h
$diff->i
,但只插入了小时/分钟,而不是时间格式