8

PHPルーチンdate_parseによって返される形式の日付配列があります。この日付配列を日付文字列に戻す必要があります。

date_parse ルーチンの逆を行う関数を探しています。これは、日付配列をパラメーターとして受け入れ、日付文字列を返す関数です。

http://php.net/manual/en/function.date-parse.php

私が持っている日付配列には、「年」、「月」、および「日」の値しかない場合があります。また、「年」、「月」、「日」、「時」、「分」、および「秒」の値を持つ場合もあります。時、分、秒の値が欠落している場合、ルーチンは文字列の時、分、秒の部分が 00:00:00 の日付文字列を返すと予想します。

検索に時間を費やしましたが、これまでのところ、date_parse の逆の関数は見つかりませんでした。

4

3 に答える 3

1

まあ、私が見つけることができる最善の方法は、使用することsprintfです...mktime時間ロケールを設定する必要があり、日付をフォーマットするためにタイムスタンプを通過するのも好きではありません。

したがって、フォーマットされたフィールドを印刷するだけです:

// Parse from YYYY-MM-DD to associative array
$date = date_parse_from_format("Y-m-d", "2014-07-15");
// Write back to DD/MM/YYYY with leading zeros
echo sprintf("%02d/%02d/%04d", $date["day"], $date["month"], $date["year"]);

編集: ただし、このソリューションでは、たとえば、年の下 2 桁だけを印刷する必要がある場合 (たとえば、1984 年から "84" まで) を微調整する必要があります。

于 2014-08-15T10:04:35.710 に答える
0

フォームで日付ピッカーを使用し、返される形式は配列です。

[開始] => 配列 ( [月] => 04 [日] => 26 [年] => 2016 [時間] => 05 [分] => 54 [子午線] => 午後 ) [終了] => 配列( [月] => 04 [日] => 26 [年] => 2016 [時間] => 05 [分] => 54 [子午線] => 午後 )

その配列を日付オブジェクトに変換する方法は次のとおりです。

$timeArray = $this->request->data['Task']['start'];
$start = $this->Task->deconstruct('start', $timeArray);

私のモデルは「タスク」で、日付配列のキーは「開始」です。これら 2 つのフィールドを独自のものに置き換える必要があります。

日付オブジェクトの出力は次のとおりです。

2016-04-26 17:54:00

参考:CakePHP の日付ピッカーフォームのデータを PHP の DateTime オブジェクトに変換するには?

于 2016-04-26T23:48:48.380 に答える