0

私はRFC822日付形式を使用していて、ifステートメントを機能させようとしていますが、機能せず、理由がわかりません。これは、データが次のようにエコーしているものです。

$currentdate = Fri, 01 Mar 13 22:24:02 +0000
$post['created_on'] = Sat, 17 Nov 2012 19:26:46 +0100

これは私の声明です:

$currentdate = date(DATE_RFC822, strtotime("-7 days"));
if ($post['created_on'] < $currentdate) 
{
  echo "test";
}
else
{

}

作成された配列が過去7日以内であるかどうかを確認しようとしていますが、ステートメントの「<」または日付のフォーマット方法に関係があると思いますか?

ありがとう、サイモン

4

2 に答える 2

1

タイムスタンプを比較したい:

<?php
if (strtotime($post['created_on']) >= strtotime('-7 days'))
{
    // Created in the last seven days
}
于 2013-03-08T22:31:47.153 に答える
0

英数字の比較を行っているため、コードは機能しません。RFC822 はそのために設計されていません。

アルファベットで前に来るような比較Fri ...よりも低いことに注意してください。Sat ...FS

DateTimeクラスを使用します。

$currentdate = new DateTime('-7days +0100'); // ! use the same tz offset as the post !
$postdate = new DateTime('Sat, 17 Nov 2012 19:26:46 +0100');

if($postdate < $currentdate) {
  // ... do stufff
}
于 2013-03-08T22:31:12.453 に答える