PHP-如何在此条件语句中比较日期/持续时间

恩格莱斯拉

我有一些代码,允许用户输入“第一次考试”的日期,将该日期与今天的日期进行比较,如果这两个日期之间的差额是一定量,则显示警告/通知(因为其余的考试必须是在参加第一次考试的18个月内完成)。我在解决如何比较条件语句中的日期/日期之间的差异时遇到了麻烦-换句话说,如何将其$difference与“ 18个月”或“ 2个月”进行比较,等等。正确的方向,将不胜感激。

代码:

<?php

// Set first exam date
$firstexamdate = "2015-08-20";

// Work out date that is 18 months from first exam date
$add_18_months = strtotime($firstexamdate . ' + 18 months');
$eighteen_months_time = date('Y-m-d',$add_18_months);

// Check
echo "Date of first exam: " . $firstexamdate . "<br>";
echo "18 months from this date: " . $eighteen_months_time . "<br>";

// Work out diff between cut-off date and today
$today = date('Y-m-d');
$date1 = new DateTime($eighteen_months_time);
$date2 = new DateTime($today);
$difference = $date1->diff($date2);

// Display
echo "Difference/time remaining: " . $difference->y . " years, " . $difference->m . " months, " . $difference->d . " days " . "<br";

// BELOW CODE NOT WORKING

// Display $difference as string
echo $difference->format('Y-m-d');

// Output correct warning colour
if ($difference <=  /* 18 months */ and >= /* 6 months */ {
    echo "Green warning: At least 6 months left.";
} elseif ($difference  <=  /* 5 months */ and >= /* 2 months */ {
    echo "Orange warning: Less than 5 months left.";
} elseif ($difference <=  /* 1 months */ and >= /* 0 months */ {
    echo "Red warning: Less than one month left.";
}

?>
北斋

您可以使用$ difference对象days属性:

if ($difference->days <=  (18 * 30) && $difference->days >= (6 * 30) {
    echo "Green warning: At least 6 months left.";
}

关于Php文档中的财产

如果DateInterval对象是由DateTime :: diff()创建的,则这是开始日期和结束日期之间的总天数。否则,天将为假。

http://php.net/manual/zh/class.dateinterval.php

编辑

如果您确切需要6个月和18个月,则可以使用以下方法:

$targetDate = new DateTime('20170529'); //here your target date;
$now = new DateTime(); //by default today;
$min = clone $targetDate;
$min->add(new DateInterval('P6M'));
$max = clone $targetDate;
$max->add(new DateInterval('P18M'));
if($now >= $min && $now <= $max){
// your code here
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Javascript中比较日期时间?

来自分类Dev

如何在PHP中比较两个数组

来自分类Dev

如何在PHP中比较日期和字符串

来自分类Dev

如何在IF语句中使用php函数

来自分类Dev

如何在Swift中比较日期的时间?

来自分类Dev

在NodeJS IF语句中比较日期

来自分类Dev

如何在多逻辑语句中比较数据帧之间的日期时间?

来自分类Dev

PHP FFMPEG如何在转换前根据比特率和持续时间计算视频的文件大小?

来自分类Dev

如何在PHP中比较两个ISO 8061持续时间?

来自分类Dev

如何在特定持续时间之间在php中显示任何内容?

来自分类Dev

如何将PT格式的持续时间转换为PHP中的常规字符串

来自分类Dev

在两个日期之间的MySQL或PHP中生成50个随机持续时间间隔

来自分类Dev

获取我的国家的日期以及如何在php中比较日期

来自分类Dev

如何在php中比较字符串中的数字

来自分类Dev

如何在php中比较两个变量

来自分类Dev

PHP的:增加持续时间

来自分类Dev

无法在SQL语句中比较日期

来自分类Dev

如何在此脚本中添加PHP IF语句?

来自分类Dev

如何在单个foreach循环php中比较值

来自分类Dev

如何在PHP中比较两个数组与条件

来自分类Dev

PHP的:比较日期,如果条件

来自分类Dev

PHP条件日期处理-比较时间和日期

来自分类Dev

在php中计算从过去到现在的持续时间

来自分类Dev

如何在php中比较数组的加法和减法?

来自分类Dev

如何在php中比较mysql查询中的时间?

来自分类Dev

PHP 增加会话持续时间

来自分类Dev

如何在 PHP 条件语句中定义 HTML 类

来自分类Dev

PHP Laravel 如何获取叶子持续时间的日期数组

来自分类Dev

如何在 PHP 的 if 语句中选择特定 (WP) 类别?

Related 相关文章

热门标签

归档