PHP检查当前时间

时间:2017-02-14 01:17:23

标签: 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 (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 }
}

但我不知道如何计算$late$late是知道提交时间的小时/分钟

2 个答案:

答案 0 :(得分:0)

取决于你想要展示的内容......我假设你想要显示两次之间的差异(日期时间)。你可以这样做:

$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'); 

检查documentation以形成间隔输出。

如果您只想根据提交请求的时间进行展示,只需使用

即可
$datetime = new DateTime();
$hours = $datetime->format('H');

然后使用$ hours变量来决定要做什么。希望有所帮助。 关于DateTime类的更多文档。

答案 1 :(得分:0)

您可以使用DateTime::createFromFormat()从给定时间创建日期对象,并使用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分钟