2016-10-20 60 views
-1

私はスタックオーバーフローの初心者です。私の質問があなたには明らかでないなら、私を案内してください。ワードで月名の日付と日付を変更します。

I have a datetime such as 2016-10-08 11:02:55. 
I need to convert it into like this 8 OCT 2016. 

どのように私はこの形式でそれを得ることができる誰か考えてください。これはPHPで行う必要があります。

ありがとうございました。

+1

「2016-10-08 11:02:55」はタイムスタンプではありません。それはdatetimeです – Mohammad

+0

はいありがとうございます@モハマド私は質問を更新しました。ありがとう –

+1

私はあなたを案内しましょう:あなたは[ask]と[mcve]を読むべきです。参考になり、質問する方法を理解できるようになります。これには編集が必要です。 – xenteros

答えて

4

strtotime()を使用してターゲット文字列を時刻に変換し、date()を使用して時刻を形式化日付に変換する必要があります。また、strtoupper()はすべての文字を大文字に変換します。

$x = "2016-10-08 11:02:55"; 
echo strtoupper(date("j M Y",strtotime($x))); 

結果:

8 OCT 2016 

ワーキングDEMO

+0

私はあなたのソリューションを投票するのに十分な評判を持っていません。しかし、それは絶対的な解決策です。ありがとう。私は感謝します。 –

+1

奇妙な。あなたは質問を投稿した人物ですので、 'チェック 'アイコンをクリックしてSOLVEDとマークすることができます。 – Irvin

+0

はい私はあなたの解決策をupvotedしています。しかし、最低でも15の評判が得られれば、私の投票では何の違いもあります。 –

0

PHPの素晴らしいところは、所望の結果を得るために複数の方法が通常存在することがあり、その原則が成り立ちますこの場合も。次のコードを書くこともできます:

<?php 

$date = new DateTime('2016-10-08 11:02:55'); 
echo strtoupper($date->format('j M Y')); 

ライブコードhereを参照してください。

このソリューションの利点は、新しいDateTimeオブジェクトを初期化するためのパラメータとして文字列を渡すことです。そのオブジェクトを使用して日付形式を指定することができます。最後に、strtouppe()を使用して月の名前をすべて大文字にします。公平で

は、しかし、マニュアルは、次のように、このオブジェクトのフォーマット方法は、限られていることを述べている:

このメソッドはロケールを使用していません。すべての出力は英語です。

PHPは、DateTimeオブジェクトをインスタンス化するために静的に呼び出すことのできる別のメソッドをDateTimeクラスに提供しています。必要に応じて、メソッドにタイムゾーン情報を指定することができます。以下のように、解決策をコーディングする別の方法は次のとおりです。

<?php 
$date = DateTime::createFromFormat('Y-m-d g:i:s', "2016-10-08 11:02:55"); 
echo strtoupper($date->format('j M Y')); 

は、ライブコードhereを参照してください。

関連する問題