我在检查提交时间的当前时间方面遇到一些问题
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
是知道提交时间的小时/分钟
答案 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分钟