idate

(PHP 5, PHP 7)

idateローカルな時刻/日付を整数として整形する

説明

int idate ( string $format [, int $timestamp = time() ] )

指定された引数 timestamp を、 与えられたフォーマット文字列によりフォーマットし、日付数値を返します。 タイムスタンプが与えられない場合は、現在のローカル時刻が使われます。 つまり、timestamp はオプションであり、 そのデフォルト値は time() の値です。

関数 date() と異なり、idate()format パラメータ中は一文字しか受け取りません。

パラメータ

format

以下の文字が format パラメータ文字列として認識されます
format 文字 説明
B Swatch ビート/インターネット時間
d 月の日
h 時 (12 時間単位)
H 時 (24 時間単位)
i
I (大文字の i) 夏時間の適用中は 1、 そうでなければ 0 を返す
L (大文字の l) 閏年なら 1、 そうでなければ 0 を返す
m 月数
s
t 現在の月の日数
U Unix Epoch (January 1 1970 00:00:00 UTC) からの秒数。 これは time() と同じです
w 曜日 (日曜日は 0)
W ISO-8601 形式。月曜日から始まる年単位の週番号
y 年 (1 桁あるいは 2 桁の数値 - 下の「注意」を確認ください)
Y 年 (4 桁)
z 年間の通算日
Z タイムゾーンのオフセット秒数

timestamp

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

返り値

整数値を返します。

idate() が返す値の型は常に integer であり、 先頭に "0" がくることはありません。そのため、idate() の返す結果が予想より少ない桁数になることもあります。以下の例を参照ください。

エラー / 例外

すべての日付/時刻関数は、 有効なタイムゾーンが設定されていない場合に E_NOTICE を発生させます。また、システム設定のタイムゾーンあるいは環境変数 TZ を使用した場合には E_STRICT あるいは E_WARNING を発生させます。 date_default_timezone_set() も参照ください。

変更履歴

バージョン 説明
5.1.0

タイムゾーンがおかしい場合に E_STRICTE_NOTICE が発生するようになりました。

例1 idate() の例

<?php
$timestamp 
strtotime('1st January 2004'); //1072915200

// これは、年を 2 桁で表示します。
// しかし、ここでは年が "0" から始まるので、
// "4" だけが表示されます。
echo idate('y'$timestamp);
?>

参考

  • date() - ローカルの日付/時刻を書式化する
  • getdate() - 日付/時刻情報を取得する
  • time() - 現在の Unix タイムスタンプを返す

add a note add a note

User Contributed Notes 1 note

up
1
khaine at herbok dot org
6 years ago
A function that made by idate for print a hour you want:

<?php
function hour ( $a, $b )
{
   
$timestamp = strtotime(''.$a.':'.$b.':00');
   
$aa = idate('H', $timestamp);
   
$bb = idate('i', $timestamp);
    if(
$bb=="0") { $cc = "00"; } else { $cc = $bb; }
   
$dd = $aa.".".$cc;
    return(
$dd);
}
?>

Why should i use it?
For example:
You have to print 08:00 to 21:00 by 15 minutes periods.
This is a useful code for shipping sites for delivery time.

<?php
echo "<select name=\"example\">";
for(
$i=8;$i<=20;$i++)
{
    for(
$ii=0;$ii<=3;$ii++)
    {
       
$iii = $ii * 15;
       
$hour = hour($i, $iii);
        echo
"<option value=\"".$hour."\">".$hour."</option>";
    }
}
echo
"</select>";
?>
To Top