【问题标题】:Check datetime between a day using PHP使用 PHP 检查一天之间的日期时间
【发布时间】:2016-07-01 21:50:55
【问题描述】:

我想检查发布日期是否在给定日期之间
以下是我的输入:

$no_of_days = 1;

我的发布日期时间如下:

$post_datetime = '2016-03-01T03:50:47.742Z';

不,我想检查 $post_datetime 是否在 $no_of_days 之间
提前致谢

【问题讨论】:

  • 很不清楚你想在这里实现什么。
  • 在给定的 $no_of_days 上,我想检查我的 $post_datetime 是否包含... @uchiha

标签: php date datetime type-conversion datetime-format


【解决方案1】:

试试这个

$post_datetime = '2016-03-01T03:50:47.742Z';
$no_of_days = 1;

$date1=date_create($post_datetime);
$date2=date_create(date("Y-m-d"));
$diff=date_diff($date1, $date2);
$days = $diff->format("%a");
if($days <= $no_of_days) //do something

【讨论】:

    【解决方案2】:
    /**
     * Checks if the given dates are in a defined range
     *
     * To handle with the difference of CET and CEST, a complete day gets
     * aggregated to the days if there is a difference of hours.
     *
     * @param \DateTime $date1 Your defined date
     * @param \DateTime $date2 The date that has to be valuated
     * @param int $numberOfDays
     * @return bool
     */
    public function isDateInRange(
        DateTime $date1,
        DateTime $date2,
        $numberOfDays
    ) {
        $days  = (int) $date2->diff($date1)->days;
        $hours = (int) $date2->diff($date1)->h;
        if ($hours > 0) {
            ++$days;
        }
        if ($days <= $numberOfDays) {
            return true;
        }
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 2020-02-26
      相关资源
      最近更新 更多