2

以下のサンプルではなく、Date: Tue, 01 May 2012 10:38:13 のような日付のみを表示する解析メールを取得するにはどうすればよいですか?

Date: Tue, 01 May 2012 10:38:13 -0400 Subject: Sample E-mail From: user To: user Message-ID: Thread-Topic: Sample E-mail Thread-Index: Ac0nqAlw+FJmG2FhRUuM8nhAxVUpjA== Mime-version : 1.0 コンテントタイプ: マルチパート/代替; 境界=\"B_3418713494_2606128\" >

$date2 = substr($email, strripos($email,"Date:")+strlen("Date:"));
$date = explode("Delivered To:", $date2);
echo "<br /><br /> Date: " . $date[0];
4

3 に答える 3

1

信頼できる場合は、以下Date:が続く場合Subject:、正規表現ソリューション (およびそのオーバーヘッド) の代替として機能する可能性があります。

$pos = strpos('Subject:', $mail_header);
if ($pos !== false) {
  $date = substr($mail_header, 0, $pos);
  echo $date;
}
于 2012-05-01T18:09:34.657 に答える
0

日時クラス!

注: (PHP 5 >= 5.2.0)

指定された日付形式は標準の不変長であるため、substr を使用して文字列を解析することもできます。

$date = date_create(
    substr($email,6,25)
);

echo $date->format('D, d M Y g:i:s'); //or any valid format you want
于 2012-05-01T18:58:11.960 に答える
0

あなたが何を望んでいるのか私が理解していない場合は、次のように動作するはずです-変更

echo "<br /><br /> Date: " . $date[0];

echo "<br /><br /> Date: " . date( "D, d M Y g:i:s", strtotime( $date[0] ) );

マニュアル参照: date()strtotime()

于 2012-05-01T18:19:59.773 に答える