我在约会上有些问题。我需要制造->
如果你的活动少于一天,做点什么吧
否则,如果你的活动超过1天,少于3天,做其他事情
否则,如果你的活动超过3,做其他动作
我在PHP中需要这个。我的实际代码是:
if (strtotime(strtotime($last_log)) < strtotime('-1 day') ) {
$prom .= "" . json_encode('last_activity') . ": " . json_encode("inactive less than 1 day") . ",";
} else if (strtotime($last_log) > strtotime('-1 day') && strtotime($last_log) < strtotime('-3 day')) {
$prom .= "" . json_encode('last_activity') . ": " . json_encode("inactive more than 1 day and less than 3 days") . ",";
} else if (strtotime($last_log) > strtotime('-3 day')) {
$prom .= "" . json_encode('last_activity') . ": " . json_encode("inactive more than 3") . ",";
}我觉得我真的不懂日期计算。
发布于 2017-11-07 19:43:13
在这种情况下,Date_diff要容易得多:
$datetime1 = date_create(); // now
$datetime2 = date_create($last_log);
$interval = date_diff($datetime1, $datetime2);
$days = $interval->format('%d'); // the time between your last login and now in days请参阅:http://php.net/manual/en/function.date-diff.php
或者以你的方式:
if(strtotime($last_log) < strtotime('-1 day')){
// it's been longer than one day
}发布于 2017-11-07 19:58:10
如果您想使用strtotime执行此操作,请如下所示:
date_default_timezone_set('SOMETHING FOR YOU');
$last_log = '-0.5 day';
$last_log_time = strtotime($last_log);
$minus1day_time = strtotime('-1 day');
$minus3day_time = strtotime('-3 day');
echo $last_log_time . "<br>";
echo $minus1day_time . "<br>";
echo $minus3day_time . "<br>";
if ($last_log_time < $minus3day_time)
{
echo "inactive more than 3";
}
elseif ( ($last_log_time <= $minus1day_time) && ($last_log_time >= $minus3day_time) )
{
echo "inactive more than 1 day and less than 3 days";
}
elseif ($last_log_time > $minus1day_time)
{
echo "inactive less than 1";
}我从你的代码中改变了几件事:
然后应用json_encode注释。
为了解释为什么逻辑被颠倒了:
发布于 2017-11-07 19:48:02
$dateLog = new DateTime($last_log); // format if needed
$tomorrow = new DateTime("tomorrow");
$yesterday = new DateTime("yesterday");
$threeDaysAgo = new DateTime("-3 days");
if ($dateLog < $yesterday) {
// Do what you want
} else if ($dateLog > $yesterday && $dateLog < $threeDaysAgo) {
// Do another thing
} else if ($dateLog > $threeDaysAgo) {
// ...
}医生来了:http://php.net/manual/en/datetime.diff.php
https://stackoverflow.com/questions/47166075
复制相似问题