日時文字列の時間部分を時間、分、秒に分割して、各フィールドに単一の数値を持たせることはできますか? mysql データベースからの取得が理想的です。
私はサイトを見回しましたが、日付と時刻の部分を分割する方法について豊富なアドバイスがあるようですが、私の特定の質問に関するアドバイスはありません。よろしくお願いします。
PS PHPを使用してmysqlデータベースから日時を選択します。
これをSQLで直接実行する場合:
SELECT HOUR( timestamp_field ) AS HOUR,
MINUTE( timestamp_field ) AS MINUTE,
SECOND( timestamp_field ) AS SECOND
FROM some_table
または、クエリを実行した後にphpでそれを実行したい場合
$datetime = "1997-12-31 23:59:59";
$parsed = date_parse($datetime);
これは次のようになります
Array
(
[year] => 1997
[month] => 12
[day] => 31
[hour] => 23
[minute] => 59
[second] => 59
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array()
[error_count] => 0
[errors] => Array()
[is_localtime] =>
)
どうですか:
<?php
$timestamp = 1359837241;
$hour = date('H', $timestamp);
$minute = date('i', $timestamp);
$second = date('s', $timestamp);
echo $hour . '<br>';
echo $minute . '<br>';
echo $second . '<br>';
?>
ブローコードを使用すると、DateTimeをTimeStampに変換できます
$date = new DateTime("1897-04-21 22:55:19");
$TimeStamp=$date->getTimestamp();
そしてdate()関数を使用すると、タイムスタンプを年、分、秒に分割できます
echo date("H",$TimeStamp);
.
.
.
詳細については、date()を参照してください
あなたの質問を正しく理解していれば、これでうまくいくはずです:
<?php
$timeStamp = '2012-10-23 13:35:20';
$timeStampSplode = explode( ' ', $timeStamp );
$head = $timeStampSplode[0];
$tail = $timeStampSplode[1];
$headSplode = explode( '-', $head );
$tailSplode = explode( ':', $tail );
$year = $headSplode[0];
$month = $headSplode[1];
$date = $headSplode[2];
$hour = $tailSplode[0];
$minute = $tailSplode[1];
$second = $tailSplode[2];
echo "Year: ". $year. "<br />";
echo "month: ". $month. "<br />";
echo "date: ". $date. "<br />";
echo "hour: ". $hour. "<br />";
echo "minute: ". $minute. "<br />";
echo "second: ". $second. "<br />";
?>
また、データベースから取得した値として $timeStamp を使用しても問題ありません。