如何对日期和时间差异进行自定义更改?
How to make custom changes in date and time differences?
我只想回显一些日期,只有当它们更接近时。
我创建了一个脚本,并在其中使用了以下代码。
$now = new DateTime(null, new DateTimeZone('UTC'));
$todaydate=$now->format('Y-m-d H:i:s');
$expdate="2020-09-13 21:00:00";
function format_interval(DateInterval $interval) {
$result = "";
if ($interval->y) { $result .= $interval->format("%y years "); }
if ($interval->m) { $result .= $interval->format("%m months "); }
if ($interval->d) { $result .= $interval->format("%d days "); }
if ($interval->h) { $result .= $interval->format("%h hours "); }
if ($interval->i) { $result .= $interval->format("%i minutes "); }
if ($interval->s) { $result .= $interval->format("%s seconds "); }
return $result;
}
$exp_date = new DateTime($expdate);
$today_date = new DateTime($todaydate);
$difference = $exp_date->diff($today_date);
echo "Days left to expiry:".format_interval($difference)."</br>";
它给出了(近似结果)
距离到期还有天数:4 年 10 个月 18 天 8 小时 0 分 40 秒
现在我只想在 2 个月后过期时显示此内容意味着 1 个月 30 天或更短......
我试过了
if ("%m"<=1){
echo "Days left to expiry:".format_interval($difference)."</br>";
}
但是没用?
我们将不胜感激任何帮助。
谢谢。
月份有点困难,需要额外的逻辑,但您可以根据 DateInterval
class.
提供的天数来计算
您可以像这样更改逻辑:
// Average 60 days over 2 months
if($difference->days <= 60) {
echo "Days left to expiry:".format_interval($difference)."</br>";
}
@steadweb
<?php
$expdate="2020-09-13 21:00:00";
$exp_date = new DateTime($expdate);
print $exp_date->format('d M. Y H:i:s');
?>
是的,它起作用了:)
我只想回显一些日期,只有当它们更接近时。
我创建了一个脚本,并在其中使用了以下代码。
$now = new DateTime(null, new DateTimeZone('UTC'));
$todaydate=$now->format('Y-m-d H:i:s');
$expdate="2020-09-13 21:00:00";
function format_interval(DateInterval $interval) {
$result = "";
if ($interval->y) { $result .= $interval->format("%y years "); }
if ($interval->m) { $result .= $interval->format("%m months "); }
if ($interval->d) { $result .= $interval->format("%d days "); }
if ($interval->h) { $result .= $interval->format("%h hours "); }
if ($interval->i) { $result .= $interval->format("%i minutes "); }
if ($interval->s) { $result .= $interval->format("%s seconds "); }
return $result;
}
$exp_date = new DateTime($expdate);
$today_date = new DateTime($todaydate);
$difference = $exp_date->diff($today_date);
echo "Days left to expiry:".format_interval($difference)."</br>";
它给出了(近似结果)
距离到期还有天数:4 年 10 个月 18 天 8 小时 0 分 40 秒
现在我只想在 2 个月后过期时显示此内容意味着 1 个月 30 天或更短......
我试过了
if ("%m"<=1){
echo "Days left to expiry:".format_interval($difference)."</br>";
}
但是没用?
我们将不胜感激任何帮助。
谢谢。
月份有点困难,需要额外的逻辑,但您可以根据 DateInterval
class.
您可以像这样更改逻辑:
// Average 60 days over 2 months
if($difference->days <= 60) {
echo "Days left to expiry:".format_interval($difference)."</br>";
}
@steadweb
<?php
$expdate="2020-09-13 21:00:00";
$exp_date = new DateTime($expdate);
print $exp_date->format('d M. Y H:i:s');
?>
是的,它起作用了:)