【发布时间】:2018-10-16 21:01:36
【问题描述】:
我正在尝试使用 php 和 mysql 做一个合同管理应用程序,但我对日期有一些疑问。
我需要知道今天和合同中特定日期之间的时间,或者如果不到一个月,它应该显示剩余天数..
问题是比较知道合同结束是在过去还是将来,似乎没有用!
验证码链接:link to project
$hoje = date_create();
$fim = '2022-11-11';
$fim_data = date_create($fim);
$diff = date_diff( $hoje, $fim_data );
$meses = (($diff->format('%y')*12)+$diff->format('%m'));
$dias = $diff->days;
var_dump($fim < $hoje);
if($fim < $hoje) {
$result = "Contract has ended";
} elseif($meses >=1 ) {
$result = $meses . " months";
echo '<br>';
} else {
$result = $dias . " days";
};
echo '<br>';
echo $result;
【问题讨论】:
-
现在你不想要/不期望的行为是什么?
-
$fim 日期是将来的日期,它大于 $hoje(葡萄牙语中的今天),但 var_dump 输出的是 true 而不是 false...
-
如果您希望这种比较起作用,您需要将两个日期都转换为时间戳
-
@IdontDownVote - 我同意,我只是添加月数取决于哪些月,因为并非所有月都是平等的。
-
@IdontDownVote 它实际上正在工作(当两者都是 DateTime 对象时)通过简单的比较(),因为 datetime 已经实现了运算符!
标签: php date comparison diff