ホームページ >バックエンド開発 >PHPチュートリアル >DateFormat PHP クラス (php ハンドルの日付)

DateFormat PHP クラス (php ハンドルの日付)

WBOY
WBOYオリジナル
2016-06-13 13:07:53821ブラウズ

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

format キャラクター 説明 戻り値の例
--- ---
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 で追加) 例: UTCGMT大西洋/アゾレス諸島
(大文字の i) 日付が夏時間であるかどうか 1 夏時間の場合、0 それ以外の場合は。
グリニッジ時間 (GMT) との時間差 例: +0200
時と分の間にコロンを付けたグリニッジ時間 (GMT) との差 (PHP 5.1.3 で追加) 例: +02:00
タイムゾーンの略語 例: ESTMDT ...
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() の値になります。

?

?

?

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。