web-dev-qa-db-ja.com

PHPで日時文字列を再フォーマットする方法は?

プラグインから日時を受け取ります。変数に入れます:

$datetime = "20130409163705"; 

実際にはyyyymmddHHmmssに変換されます。

これをトランザクション時間としてユーザーに表示する必要がありますが、適切に見えません。

09/04/2013 16:37:05または09-apr-2013 16:37:05

文字列の順序を変更するにはどうすればよいですか?

今のところ、substrを使用して日付と時刻を区切ることが考えられます。追加の文字を追加して日付を再配置する方法についてはまだわかりません。

44
Psychocryo

以下のようにdate()を使用しない理由

$t = strtotime('20130409163705');
echo date('d/m/y H:i:s',$t);

出力されます

09/04/13 16:37:05
68
bluewind

PHP 5> = 5.3.0の場合 http://www.php.net/manual/en/datetime.createfromformat.php

$datetime = "20130409163705"; 
$d = DateTime::createFromFormat("YmdHis", $datetime);
echo $d->format("d/m/Y H:i:s"); // or any you want

結果:

09/04/2013 16:37:05
41
Andrey Volk

substr()を使用する場合は、このようにダッシュまたはスラッシュを簡単に追加できます。

$datetime = "20130409163705"; 
$yyyy = substr($datetime,0,4);
$mm = substr($datetime,4,6);
$dd = substr($datetime,6,8);
$hh = substr($datetime,8,10);
$MM = substr($datetime,10,12);
$ss = substr($datetime,12,14);
$dt_formatted = $mm."/".$dd."/".$yyyy." ".$hh.":".$MM.":".$ss;

その時点からさらに書式設定を行うことができます。

これを試して

$datetime = "20130409163705"; 
print_r(date_parse_from_format("Y-m-d H-i-s", $datetime));

出力:

[year] => 2013
[month] => 4
[day] => 9
[hour] => 16
[minute] => 37
[second] => 5
1
Suresh Kamrushi

次のようにできます:

<?php
$datetime = "20130409163705"; 
$format = "YmdHis";

$date = date_parse_from_format ($format, $datetime);
print_r ($date);
?>

date_parse_from_format() および 受け入れられるフォーマット値 を見ることができます。

0
vanneto

date("Y-m-d H:i:s", strtotime("2019-05-13"))

0
Chuanyi Liu
https://en.functions-online.com/date.html?command={"format":"l jS \\of F Y h:i:s A"}
0
skpaik

date_parse_from_format()関数を使用できます...

これを確認してください link ..

0
SeliC