2 つの質問があります。1978 年 5 月 16 日のような日付を渡し、MySQL テーブルの日時フィールドに適した形式に変換したいと考えています。
次に、php で現在の時刻を取得する方法を教えてください。17:22:59 のようなもの
あなたは調べたいと思うでしょう
strtotime()
- 英語のテキストによる日時の説明を Unix タイムスタンプに解析するtime()
- 現在の Unix タイムスタンプを返すdate()
- 現地時間/日付のフォーマットこのdate()
関数を使用すると、EPOCH タイムスタンプを渡して、タイムスタンプを表す文字列を任意の形式で取得できます。
$now = time();
$today = date("M d Y",$now); // May 01 2012
可能な形式の詳細については、日付関数のドキュメントを確認してください...
日付はいつでも EPOCH 形式 (1970 年 1 月 1 日からの秒数) で保存できます。EPOCH タイムスタンプの使用と操作は非常に簡単です。INT(10)
データベースのフィールドを使用してこれらの値を保存します。
タイムスタンプを EPOCH で実装することにした場合に使用できる素晴らしいツールを次に示します。
このコードを使用します:
function convert_time_sql($date){
$date = strtotime($date);
$date = date("Y-m-d ",$date).date("G:i:s");
return $date;
}
これにより、SQL形式の時刻が返されます
注: 日付は適切な形式である必要があります。以下を参照してください。
http://www.php.net/manual/en/function.strtotime.php
http://www.php.net/manual/en/datetime.formats.date.php
編集:
時間が含まれている場合は、この関数を使用します。
function convert_time_sql($date,$time_included=false){
$date = strtotime($date);
$date = date("Y-m-d ".($time_included?"G:i:s":""),$date).($time_included?"":date("G:i:s"));
return $date;
}
時間を含める場合は、指定された日付の後にtrueを入力してください。
お気に入り convert_time_sql('05/16/1978 05:45:59 AM',true);
このリンクを見てください
http://php.net/manual/en/class.datetime.php
例えば
$d = "05/16/1978";
list($month, $day, $year) = explode("/",$d);
$datetime = sprintf("%d-%d-%d", $year, $month, $day);
DATETIME
フォーマットは です。YYYY-MM-DD
結果をそれに変換するには、次のようにします。
$date = "05/16/1978";
list($month, $day, $year) = explode("/",$date);
$datetime = sprintf("%d-%d-%d", $year, $month, $day);
$datetime
これで、MySQL が理解できる "1978-16-15" が含まれます。
date('G:i:s')
現在の時刻を H:m:s の形式で返します。
このDates in PHP and MySQLブログ投稿を読んでください。
PHP を使用して MySQL に格納されている日付を管理する 3 つの可能性をまとめています。そこで言及されている一般的な方法は次のとおりです。
一般的な解決策の 1 つは、日付を DATETIME フィールドに格納し、PHP の date() および strtotime() 関数を使用して PHP のタイムスタンプと MySQL の DATETIME を変換することです。
例えば:
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );
お役に立てば幸いです。