4

私は日付の文字列を持っています:

25/08/2012

ここでは、MySQL データベースに保存するために、DateTime オブジェクトに変換しようとしています。バックエンド スキーマには、DateOfPrint dateこのデータを受け取る準備ができている列があります。

これが私が試したことです:

$eventDate = DateTime::createFromFormat('d/m/y', $fecha->innertext);
echo $eventDate;

ステートメントはecho画面に何も表示されず、データベースに保存しようとすると、その列には何も保存されません。

助言がありますか?

4

5 に答える 5

11

$eventDate空の文字列として出力されるboolean(false)が含まれています。

大文字のYを使用する必要があります。

Y年の完全な数値表現、4桁例:1999または2003
y年の2桁表現例:99または03

そして、 DateTime :: format()を呼び出す必要があります;
例えば

<?php
$fecha = new StdClass;
$fecha->innertext = '25/08/2012';

$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
if ( false===$eventDate ) {
  die('invalid date format');
}
echo $eventDate->format('Y-m-d');

プリント

2012-08-25
于 2012-08-22T13:38:59.320 に答える
3

挿入する前に、MySQL 列用にフォーマットする必要があります。

// Need upper case Y here, thanks to VolkerK for pointing that out
$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
$eventDate = $eventDate->format( 'Y-m-d'); // I think this is the correct format

次に$eventDate、日付をデータベースに保存するために使用できます。

于 2012-08-22T13:35:43.463 に答える
1

$eventDate文字列ではなくオブジェクトです。コード内の要素のプロパティにアクセスして、要素の値をテーブルに正しく挿入したり、エコーアウトしたりできるようにする必要があります。その点で、オブジェクトについて知っておくべきことをすべて表示する a を使用できます。var_dump($eventDate);

DateTime クラスの PHP docsm を参照して、使用可能なプロパティを取得し、ニーズに最適なものを確認できます。

于 2012-08-22T13:35:46.327 に答える
0
$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
echo $eventDate->format('Y-m-d');
于 2012-08-22T13:38:49.900 に答える
0

短い答え

$st_time =  date('Y-m-d H:i',$yourdate);

日と月と年だけが必要な場合は、これを使用してください

$st_time =  date('Y-m-d',$yourdate);
于 2012-08-22T13:39:40.433 に答える