getdate

(PHP 4, PHP 5, PHP 7)

getdate日付/時刻情報を取得する

説明

array getdate ([ int $timestamp = time() ] )

timestamp に関する日付情報を有する連想配列を返します。 timestamp が指定されない場合は、現在のローカルな時間に関する情報を返します。

パラメータ

timestamp

オプションのパラメータ timestamp は、 integer 型の Unix タイムスタンプです。 timestamp が指定されなかった場合のデフォルト値は、 現在の時刻です。言い換えると、デフォルトは time() の返り値となります。

返り値

timestamp に関連する情報を連想配列で返します。 返される連想配列の内容は、次のようになります。

返される連想配列のキー
キー 説明 戻り値の例
"seconds" 秒。数値。 0 から 59
"minutes" 分。数値。 0 から 59
"hours" 時。数値 0 から 23
"mday" 月単位の日。数値 1 から 31
"wday" 曜日。数値。 0 (日曜) から 6 (土曜)
"mon" 月。数値。 1 から 12
"year" 年。4桁の数値。 例: 1999 あるいは 2003
"yday" 年単位の日。数値。 0 から 365
"weekday" 曜日。フルスペルの文字。 Sunday から Saturday
"month" 月。フルスペルの文字。 January から December
0 UNIX時(1970年1月1日)からの秒数。 time()の戻り値と同様。 date()でも使用される。 システムによって違うが、通常は-2147483648 から 2147483647.

例1 getdate() の例

<?php
$today 
getdate();
print_r($today);
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

参考

  • date() - ローカルの日付/時刻を書式化する
  • idate() - ローカルな時刻/日付を整数として整形する
  • localtime() - ローカルタイムを得る
  • time() - 現在の Unix タイムスタンプを返す
  • setlocale() - ロケール情報を設定する

add a note add a note

User Contributed Notes 5 notes

up
12
vimal866 at gmail dot com
1 year ago
Andre's code will throw an error. for the following line
   
     $d = $todayh[mday];
     $m = $todayh[mon];
     $y = $todayh[year];

"Notice : Undefined constant mday ,mon,year"

As is, it was looking for constants called mday, mon, year etc. When it doesn't find such a constant, PHP interprets it as a string.

like any other request it should be wrapped in quotes like this

     $d = $todayh['mday'];
     $m = $todayh['mon'];
     $y = $todayh['year'];
up
18
Yura Pylypenko (plyrvt at mail dot ru)
14 years ago
In addition to canby23 at ms19 post:
It's a very bad idea to consider day having 24 hours (86400 secs), because some days have 23, some - 25 hours due to daylight saving changes. Using of mkdate() and strtotime() is always preferred. strtotime() also has a very nice behaviour of datetime manipulations:
<?php
echo strtotime ("+1 day"), "\n";
echo
strtotime ("+1 week"), "\n";
echo
strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo
strtotime ("next Thursday"), "\n";
echo
strtotime ("last Monday"), "\n";
?>
up
1
andre at anlex dot co dot za
10 years ago
I thought best to show a posseble way to go about bypassing the end month issue where the first day in a new month will have the monday of the week that it falls in - in the old month. Use the numbering of days as the constant and work you way from there.

Example:
<?php
//-----------------------------
$now = time();
$num = date("w");
if (
$num == 0)
{
$sub = 6; }
else {
$sub = ($num-1); }
$WeekMon  = mktime(0, 0, 0, date("m", $now)  , date("d", $now)-$sub, date("Y", $now));    //monday week begin calculation
$todayh = getdate($WeekMon); //monday week begin reconvert

$d = $todayh[mday];
$m = $todayh[mon];
$y = $todayh[year];
echo
"$d-$m-$y"; //getdate converted day

?>

Allot less code makes everyone happy..
up
-43
timforte at gmail dot com
9 years ago
It's worth noting that this is local time, not UTC/GMT - gmgetdate doesn't exist :(.

The most logical way to handle date arithmetic without hitting DST problems is to work in UTC...

<?php
function add_days($my_date,$numdays) {
 
$date_t = strtotime($my_date.' UTC');
  return
gmdate('Y-m-d',$date_t + ($numdays*86400));
}
?>

[it's even faster if you use gmmktime instead of strtotime]
up
-66
eric dot schultz at NOSPAM dot CyVon dot com
8 years ago
Here is another gmgetdate that is a little faster/suscint (no loops).

<?php
function gmgetdate2($ts = null){
       
$k = array('seconds','minutes','hours','mday',
               
'wday','mon','year','yday','weekday','month',0);
        return(
array_combine($k,split(":",
               
gmdate('s:i:G:j:w:n:Y:z:l:F:U',is_null($ts)?time():$ts))));
        }
?>

It also returns the values in the same order as getdate.
To Top