5

で日付を表示しようとしてEuropean format (dd/mm/yyyy)strtotimeますが、常に1970年1月1日を返します。

これが私のコードラインです:

echo "<p><h6>".date('d/m/Y', strtotime($row['DMT_DATE_DOCUMENT']))."</h6></p>";

私のデータベースでは、フィールドはvarcharであり、レコードはyyyy.mm.ddのようにフォーマットされています。

yyyy-mm-dd(varcharも)のようにフォーマットされた別のフィールドに同じコードラインを使用し、正常に動作します。

ご協力いただきありがとうございます。

4

3 に答える 3

4

フォーマットyyyy-mm-ddは機能するので、次のように置き換え.てみてください-

date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT'])));
于 2012-06-08T09:44:41.363 に答える
3

試してみてください:

$date = date_parse_from_format("Y.m.d", $row['DMT_DATE_DOCUMENT']);
$time = mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']);
echo "<p><h6>".date('d/m/Y', $time)."</h6></p>";

date_parse_from_format()の代わりに使用strtotime()

あるいは単に:

$date = date_parse_from_format("Y.m.d", $row['DMT_DATE_DOCUMENT']);
echo "<p><h6>{$date['day']}/{$date['month']}/{$date['year']}</h6></p>";
于 2012-06-08T09:45:11.630 に答える
3

PHPマニュアルのstrtotimeページから引用。

m/d/y または dmy 形式の日付は、さまざまな構成要素間の区切り記号を調べることで明確になります。区切り記号がスラッシュ (/) の場合、アメリカの m/d/y と見なされます。一方、セパレータがダッシュ (-) またはドット (.) の場合は、ヨーロッパの dmy 形式が想定されます。

潜在的なあいまいさを避けるために、ISO 8601 (YYYY-MM-DD) の日付またはDateTime::createFromFormat()可能な場合は使用することをお勧めします。

したがって、あなたの場合、YYYY-MM-DD または dmy のいずれかの形式にする必要があります

カスタム形式を解析する場合は、date_create_from_formatを使用します

例えば、

date_create_from_format('Y.m.d',$row['DMT_DATE_DOCUMENT'])
于 2012-06-08T09:54:21.080 に答える