【问题标题】:PHP compare dates (trial expired)PHP 比较日期(试用已过期)
【发布时间】:2015-09-28 00:00:58
【问题描述】:

我正在尝试将开始 + 结束(+7 天)与当前日期进行比较。如果 startdate 比当前日期早 +7 天,它应该会收到一条“活动”消息。如果当前日期是今天或超过 7 天,它应该会收到“过期”消息。

$mysettings->getTrial();给 2015-09-07

这就是我所拥有的

[编辑]

                <?php $today = time();
                  $start = $mysettings->getTrial();
                  $end = strtotime("+7 days", $start);
                  echo $end;

                    if ($end >= $today) {
                        echo 'Trial active';
                    } else {
                        echo 'Trial expired, get PRO';
                    }


                ?>

[编辑]

现在的问题是 $end = strtotime ("+7 days", $start); - 在

中遇到的格式不正确的数值

(PS:对不起,我只是一个PHP初学者)

【问题讨论】:

  • if ($end &gt;= $today) .. =&gt;&gt;= 不同。
  • 你的语法到处都是。您应该将if(){} 括起来,大于或等于运算符看起来像&gt;=

标签: php date compare


【解决方案1】:

'tests' 需要用括号括起来..

$today = time();
$start = strtotime($mysettings->getTrial());
$end = strtotime("+7 days", $start);

echo date('jS F M Y',$end);

if ($end > $today) {
    echo '<br>Trial active';
} else {
    echo '<br>Trial expired, get PRO';
}

【讨论】:

  • 哎呀.. 它可以是 '==' 或 '>' 或 '>='...(但不是 '=>')
  • 现在我得到一个:消息中遇到的格式不正确的数值。问题是行:$end = strtotime("+7 days", $start);
  • 试试:$end = strtotime("+7 days", strtotime($start));
  • 通知已经消失(耶!)但不知何故我得到了这个结果:1437004800试用活动
  • 所以你的日期是一个时间戳。只需使用 date() 对其进行格式化。 (参见上面的编辑示例)
【解决方案2】:

您可以将$today = strtotime ("Today"); 替换为$today = time();

假设$start 很好,因为它来自其他地方,将if $end =&gt; $today { 替换为if ($end &gt; $today) { 应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2017-05-09
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多