PHPにおける日時の扱い方

リンク

PHP 日付・時刻 関数
http://jp.php.net/manual/ja/ref.datetime.php

PHP による日付・時刻・時間の計算・演算のまとめ
http://www.hoge256.net/2007/08/63.html

基本

日時をいったんUNIXタイム(1970年1月1日 00:00:00からの経過秒)に変換して扱えばOK

mktime

http://jp.php.net/mktime

mktime — 日付を Unix のタイムスタンプとして取得する

int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

与えられた引数に従って UNIX のタイムスタンプを返します。

このタイムスタンプは、Unix epoch(1970年1月1日00:00:00 GMT)から 指定された時刻までの通算秒を表す長整数です。

引数は右から順に省略することができます。

省略された引数は、 ローカルの日付と時刻に従って、現在の値にセットされます。

time

http://jp.php.net/manual/ja/function.time.php

time — 現在の Unix タイムスタンプを返す

int time ( void )

現在時刻を Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒として返します。

date

http://jp.php.net/manual/ja/function.date.php

date — ローカルの日付/時刻を書式化する

string date ( string $format [, int $timestamp ] )

指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。

タイムスタンプが与えられない場合は、現在の時刻が使われます。

つまり timestamp はオプションであり そのデフォルト値は time() の値です。

strtotime

http://jp.php.net/manual/ja/function.strtotime.php

strtotime — 英文形式の日付を Unix タイムスタンプに変換する

int strtotime ( string $time [, int $now ] )

この関数は US 英文形式の日付を含む文字列が指定されることを期待しており、 now で与えられたその形式から Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) への変換を試みます。

now が指定されていない場合は現在日時に変換します。

注意: 年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、 70-99 なら 1970-1999 にそれぞれ変換されます。

オリジナル関数

英米式の日時表記は、並び順が日本人になじまない。
日本人用のラッパー関数を用意する。

  0
  1
  2
  3
  4
<?php
//Japanese mktime
function jp_mktime ($year = '', $month = '', $day = '', $hour = '', $minute = '', $second = '', $is_dst = '') {
  return mktime ($hour, $minute, $second, $month, $day, $year, $is_dst);
}
?>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-20 (日) 23:29:57 (2006d)