0

このタイムスタンプ「2012-07-12 17:50:00」から日と月の値を別々に削除したいと思います。

したがって、基本的に次のような 2 つの変数を使用できます。

$month = 7
$day = 12

私はphp、特に正規表現コーディングにあまり精通していないので、このようなことを達成する方法についてアドバイスを求めるためにこの質問を投稿すると思いました。

この点に関するご支援、洞察、ご意見をいただければ幸いです。ありがとうございました!

注: さらに、2 つの変数を「7 月 12 日」のような出力に変換したいと思います。これは非常に簡単にコーディングできるので、これを質問の一部にはしていませんが、この情報を処理する単純な関数があれば、それも大歓迎です!

4

3 に答える 3

3

コメントで述べたように、DateTime は適切な選択です。

まず、php 設定がまだ設定されていない場合は、次のようにデフォルトのタイムゾーンを設定します。

date_default_timezone_set('XXXX');

XXXX は、サポートされているタイムゾーンのリストからの値を表します

次の方法で日付を初期化します。

$DateTime = new DateTime();

タイムスタンプを取得する場所に応じて、PHP から作成すると仮定します。

$timestamp = $DateTime->getTimestamp();

出力をフォーマットします

echo $month = $DateTime->format( 'm' );
echo $day = $DateTime->format( 'd' );

または、目的の出力を取得するには:

echo $output = $DateTime->format( 'dS F' );
于 2012-07-12T18:47:15.620 に答える
2
<?php
list($month,$day) = explode(':',date('n:j',strtotime('2012-07-12 17:50:00')),2);
echo 'Month: '.$month.'<br />'."\n";//Month: 7
echo 'Day: '.$day.'<br />'."\n";//Day: 12
?>

と...

<?php
echo date('jS F',strtotime('2012-07-12 17:50:00'));//Outputs: 12th July
?>
于 2012-07-12T18:39:40.083 に答える
1

タイムスタンプが文字列であると仮定すると、正規表現ソリューションを探している場合、このようなものが機能するはずです...

<?php
$string = '2012-07-12 17:50:00';
preg_match_all('/\d{4}-(\d{2})-(\d{2})/', $string, $matches);
$month =$matches[1][0];
$day = $matches[2][0];
?>
于 2012-07-12T18:44:23.063 に答える