DateFormat PHP クラス (php 处理日期)
代:
<?php class FormatDate { var $theTime; function FormatDate($string) { //Set constructor $this->theTime = $string; } //Returns numerical day function Day() { return date("j", $this->theTime); } //Returns weekday function WeekDay() { return date("l", $this->theTime); } //Returns full month function Month() { return date("F", $this->theTime); } //Returns short-hand month function MonthShort() { return date("M", $this->theTime); } //Numeric for month function MonthNum() { return date("n", $this->theTime); } //Full 4 digit year function YearFull() { return date("Y", $this->theTime); } //Short 2 digit year function Year() { return date("y", $this->theTime); } //24 Hr with Seconds function MilitaryFull() { return date("G:i:s", $this->theTime); } //24 Hr without Seconds function Military() { return date("G:i", $this->theTime); } //Standard with seconds function StandardFull() { return date("g:i:s a", $this->theTime); } //Standard without seconds function Standard() { return date("g:i a", $this->theTime); } //Date & Month & Year Full function TextDate() { $string = $this->Month()." ".$this->Day()." ".$this->YearFull(); return $string; } //Date & Month & Year Shorthand function TextDateShort(){ $string = $this->MonthShort()." ".$this->Day()." ".$this->Year(); return $string; } //Numerical Date & Month & Year function NumDate() { $string = $this->MonthNum()."/".$this->Day()."/".$this->YearFull(); return $string; } //Numerical Date & Month & Year Shorthand function NumDateShort() { $string = $this->MonthNum()."/".$this->Day()."/".$this->Year(); return $string; } //Month & Day Full function MonthDay() { $string = $this->Month()." ".$this->Day(); return $string; } //Month & Day Short function MonthDayShort(){ $string = $this->MonthShort()." ".$this->Day(); return $string; } function TimeSince($old_stamp) { $difference = $this->theTime - $old_stamp; $loop = true; while($loop) { if(round($difference/3153600, 2) >= 1) { return "Over a year..."; } elseif(round($difference/2592000, 2) >= 2) { return "Over ".round($difference/2592000,0)." months ago..."; } elseif(round($difference/2592000, 2) >= 1.20) { return "Over a month ago..."; } elseif(round($difference/604800, 2) >= 2) { return "Over ".round($difference/604800,0)." weeks ago.."; } elseif(round($difference/604800, 2) >= 1.20) { return "Over a week ago.."; } elseif(round($difference/86400, 2) >= 1.9) { return "Over a few days ago...";} elseif(round($difference/3600, 2) >= 3) { return "Just a few hours ago.."; } elseif(round($difference/3600, 2) >= 8) { return "About half a day ago..."; } elseif(round($difference/3600, 2) < 1) { return "Less than an hour ago..."; } elseif(round($difference/86400, 2) < 1.9) { return "About a day ago..."; } elseif(round($difference/86400, 2) < 6 ) { return "Less than a week ago..."; } elseif(round($difference/604800, 2) < 1.20) { return "About a week ago.."; } elseif(round($difference/2592000, 2) < 1.20) { return "About a month ago..."; } else{ return "Error"; } $loop = false; } } }
实例:
$date = new FormatDate(time()); echo $date->Day().'<br>'; // 2 echo $date->WeekDay().'<br>'; // Tuesday echo $date->Month().'<br>'; // August echo $date->MonthShort().'<br>'; // Aug echo $date->MonthNum().'<br>'; // 8 echo $date->YearFull().'<br>'; // 2011 echo $date->Year().'<br>'; // 11 echo $date->MilitaryFull().'<br>'; // 9:08:40 echo $date->Military().'<br>'; // 9:08 echo $date->StandardFull().'<br>'; // 9:08:40 am echo $date->Standard().'<br>'; // 9:08 am echo $date->TextDate().'<br>'; // August 2 2011 echo $date->TextDateShort().'<br>'; // Aug 2 11 echo $date->NumDate().'<br>'; // 8/2/2011 echo $date->NumDateShort().'<br>'; // 8/2/11 echo $date->MonthDay().'<br>'; // August 2 echo $date->MonthDayShort().'<br>'; // Aug 2 echo $date->TimeSince(time()).'<br>'; // Less than an hour ago...
?
DateFormat クラスのドキュメント
クラスを初期化します
$date = new FormatDate(time());
数字の日
$date->Day();
テキストデー
$date->WeekDay();
月 (フル)
$date->Month();
月 (短い)
$date->MonthShort();
月 (数値)
$date->MonthNum();
年 (フル)
$date->yearFull();
年 (短い)
$date->年();
軍事 (秒)
$date->MilitaryFull();
軍事 (秒なし)
$date->軍事();
スタンダード (フル)
$date->StandardFull();
標準
$date->Standard();
テキスト日付 (完全)
$date->TextDate();
テキスト日付 (短い)
$date->TextDateShort();
数値日付 (完全)
$date->NumDate();
数値日付 (短い)
$date->NumDateShort();
月と日 (完全)
$date->MonthDay();
月と日 (短い)
$date->MonthDayShort();
からの経過時間
$date->TimeSince($timestamp);
?
格式: http://php.net/manual/en/function.date.php
日 | --- | --- |
d | 日付、先頭にゼロが付いた 2 桁 | 01 31まで |
D | 一日を 3 文字で表現したテキスト | 月 太陽を通して |
j | 先行ゼロを除いた月の日付 | 1 31まで |
l (小文字の「L」) | 曜日の完全なテキスト表現 | 日曜日 土曜日まで |
N | ISO-8601 曜日の数値表現 (追加 PHP 5.1.0) | 1 (月曜日の場合) 7 まで (日曜日の場合) |
S | 月の日を表す英語の序数接尾辞、2 文字 | st 、番目 、番目 または 番目 。 j とうまく連携します |
わ | 曜日の数値表現 | 0 (日曜日の場合) 6 まで (土曜日の場合) |
z | 年間の日 (0 から始まります) | 0 365 を通じて |
週 | --- | --- |
W | ISO-8601 年の週番号、月曜日から始まる週 (PHP 4.1.0 で追加) | 例: 42 (年の第 42 週) |
月 | --- | --- |
ふ | 1 月や 3 月などの月の完全なテキスト表現 | 1月 12 月 まで |
も | 先頭にゼロを付けた月の数値表現 | 01 12まで |
も | 月を 3 文字で表現した短いテキスト | 1月 12 月 まで |
ん | 先行ゼロを除いた月の数値表現 | 1 12まで |
t | 指定された月の日数 | 28 31まで |
年 | --- | --- |
L | 閏年かどうか | 1 うるう年の場合は、0 それ以外の場合は。 |
お | ISO-8601 の年番号。これは次と同じ値です はい ただし、ISO の週番号が (わ ) 前年または翌年、その年に属します 代わりに使用されます。 (PHP 5.1.0 で追加) | 例: 1999 または2003 |
はい | 年の 4 桁の完全な数値表現 | 例: 1999 または2003 |
や | 年を 2 桁で表したもの | 例: 99 または 03 |
時間 | --- | --- |
a | 小文字のメリディエム前とメリディエム後 | 午前 または午後 |
A | 大文字のメリディエム前とメリディエム後 | 午前 または午後 |
B | インターネット時間の見本 | 000 999まで |
g | 先頭のゼロを除いた 12 時間形式の時間を表します | 1 12まで |
G | 先行ゼロのない時間を表す 24 時間形式 | 0 23まで |
は | 先頭にゼロが付いた 12 時間形式の時間を表します | 01 12まで |
は | 先頭にゼロを付けた 24 時間形式の時間を表します | 00 23まで |
私 | 先頭にゼロを含む分 | 00 59へ |
の | 秒、先行ゼロ付き | 00 59まで |
あなた | マイクロ秒 (PHP 5.2.2 で追加) | 例: 654321 |
タイムゾーン | --- | --- |
え | タイムゾーン識別子 (PHP 5.1.0 で追加) | 例: UTC 、GMT 、大西洋/アゾレス諸島 |
私 (大文字の i) | 日付が夏時間であるかどうか | 1 夏時間の場合、0 それ以外の場合は。 |
お | グリニッジ時間 (GMT) との時間差 | 例: +0200 |
パ | 時と分の間にコロンを付けたグリニッジ時間 (GMT) との差 (PHP 5.1.3 で追加) | 例: +02:00 |
た | タイムゾーンの略語 | 例: EST 、MDT ... |
Z | 秒単位のタイムゾーン オフセット。 UTC より西のタイムゾーンのオフセットは常に次のとおりです。 負であり、UTC より東の場合は常に正です。 | -43200 50400 まで |
完全な日付/時刻 | --- | --- |
c | ISO 8601 の日付 (PHP 5 で追加) | 2004-02-12T15:19:21+00:00 |
r | ??RFC 2822 フォーマットされた日付 | 例: Thu, 21 Dec 2000 16:01:07 +0200 |
う | Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの秒数 | time() も参照 |
フォーマット文字列内の認識されない文字は印刷されます そのまま。 Z 形式は常に返されます 0 gmdate() を使用する場合 。
注意 :
この関数は 整数のみを受け入れるため、 タイムスタンプ あなた フォーマット文字は、 date_format() ユーザーベースのタイムスタンプを使用する関数 date_create() で作成されました 。
timestamp
オプションの timestamp
パラメータは
整数
デフォルトで現在に設定される Unix タイムスタンプ
現地時間 timestamp
の場合
は与えられない。その他では
つまり、デフォルトでは time() の値になります。
。
?
?
?
?