web-dev-qa-db-ja.com

PHPでAM / PMから24時間形式に時刻を変換するにはどうすればよいですか?

たとえば、私はこの形式の時間を持っています:

eg. 

09:15 AM
04:25 PM
11:25 AM

どのように変換するのですか?

09:15
16:25
23:25

現在、私のコードは次のとおりです。

$format_time = str_replace(" AM", "", $time, $count);
if ($count === 0){
    $format_time = strstr($time, ' PM', true);
    $format_time = ......
}

しかし、これを行うにはもっと簡単でエレガントな方法がありますか?

$time = '23:45'; 
echo date('g:i a', strtotime($time)); 

上記のサンプルを私のケースに合わせるにはどうすればよいですか?ありがとう。

39
user1871516

これで試してください

echo date("G:i", strtotime($time));

または、このように試すこともできます

echo date("H:i", strtotime("04:25 PM"));
88
Gautam3164

日時形式を使用する場合は、 http://php.net/manual/en/datetime.format.php を参照してください。

あなたはこれを行うことができます :

$date = new \DateTime();
echo date_format($date, 'Y-m-d H:i:s');
#output: 2012-03-24 17:45:12

echo date_format($date, 'G:ia');
#output: 05:45pm
8
Babou34090

これは24時間から12時間使用できます。

echo date("h:i", strtotime($time));

そしてその逆の場合:

echo date("H:i", strtotime($time));
6

PHP 5.3+ソリューション。

$new_time = DateTime::createFromFormat('h:i A', '01:00 PM');
$time_24 = $new_time->format('H:i:s');

出力:13:00:00

日付の書式設定に最適です。 これ 回答を確認します。

3
Bsienn
$Hour1 = "09:00 am";
$Hour =  date("H:i", strtotime($Hour1));  
2
Viral M

Carbonを使用できます

 $time = '09:15 PM';
 $s=Carbon::parse($time);
 echo $military_time =$s->format('G:i');

http://carbon.nesbot.com/docs/

1
sumit
$time = '09:15 AM';

$chunks = explode(':', $time);
if (strpos( $time, 'AM') === false && $chunks[0] !== '12') {
    $chunks[0] = $chunks[0] + 12;
} else if (strpos( $time, 'PM') === false && $chunks[0] == '12') {
    $chunks[0] = '00';
}

echo preg_replace('/\s[A-Z]+/s', '', implode(':', $chunks));
0
zioMitch