【问题标题】:Date comparison with comparison operators使用比较运算符进行日期比较
【发布时间】:2017-07-19 16:06:39
【问题描述】:

我有一个 php 代码,我正在尝试比较日期,条件是如果 currentdate 是

$prodarray= array();
while($row =mysqli_fetch_assoc($result))
{
    $todateExtracted=$row['to_date'];
    $fromdateExtracted=$row['from_date'];
    $toDate=strtotime($todateExtracted);
    $frmDate=strtotime($fromdateExtracted);

    if($currentdate <= $frmDate)
    {
       $prodarray[] = $row;
    } 
    // $i++;
}

【问题讨论】:

  • 日期是什么格式?如果它不是 UNIX,那是你的问题。所以如果它是 date() 它是一个字符串。你不能比较字符串。对不起这是我的错。读得不够仔细。等等... $currentdate 是什么?
  • 如何以及将什么加载到$currentdate
  • 我敢打赌它是今天的字符串值。由于其余代码看起来不错,有点笨拙但还可以。问题被标记为“字符串比较”。想和我打赌@Riggs :-)
  • @Andreas 不,但是19/07/2017 的赔率是多少?19-07-2017 的赔率是多少?我能得到什么mm-dd-YYYY
  • @Riggs 哦。这是一个艰难的... 他在印度。所以我敢打赌他用的是美国的写作方式。所以我相信你对 mm-dd-YYYY 是正确的。或者也许只是YY……

标签: php date comparison string-comparison date-comparison


【解决方案1】:

使用Strtotime() http://php.net/manual/en/function.strtotime.php

$prodarray= array();
while($row =mysqli_fetch_assoc($result))
{
    $todateExtracted=$row['to_date'];
    $fromdateExtracted=$row['from_date'];
    $toDate=strtotime($todateExtracted);
    $frmDate=strtotime($fromdateExtracted);
    if(strtotime($currentdate) <= strtotime($frmDate))
    {
       $prodarray[] = $row;
    } 
   // $i++;
}

【讨论】:

  • 如果你不知道$currentdate中日期使用的格式有点危险
  • 好吧,@RiggsFolly OP 没有提供日期格式。但是,在大多数“正常”情况下,strtotime() 应该可以工作。
猜你喜欢
  • 2018-03-19
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多