0
点赞
收藏
分享

微信扫一扫

DateFormat PHP Class (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 Class Documentation

Initialize Class
 $date = new FormatDate(time());

 Numerical Day
 $date->Day();

 Text Day
 $date->WeekDay();

 Month (Full)
 $date->Month();

 Month (Short)
 $date->MonthShort();

 Month (Numerical)
 $date->MonthNum();

 Year (Full)
 $date->YearFull();

 Year (Short)
 $date->Year();

 Military (Seconds)
 $date->MilitaryFull();

 Military (No seconds)
 $date->Military();

 Standard (Full)
 $date->StandardFull();

 Standard 
 $date->Standard();

 Text Date (Full)
 $date->TextDate();

 Text Date (Short)
 $date->TextDateShort();

 Numerical Date (Full)
 $date->NumDate();

 Numerical Date (Short)
 $date->NumDateShort();

 Month and Day (Full)
 $date->MonthDay();

 Month and Day (Short)
 $date->MonthDayShort();

 Time Since
 $date->TimeSince($timestamp);

 

格式: http://php.net/manual/en/function.date.php


format character

Description

Example returned values

Day

---

---

d

Day of the month, 2 digits with leading zeros

01 to 31

D

A textual representation of a day, three letters

Mon through Sun

j

Day of the month without leading zeros

1 to 31

l (lowercase 'L')

A full textual representation of the day of the week

Sunday through Saturday

N

ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0)

1 (for Monday) through 7 (for Sunday)

S

English ordinal suffix for the day of the month, 2 characters

st , nd , rd or th . Works well with j

w

Numeric representation of the day of the week

0 (for Sunday) through 6 (for Saturday)

z

The day of the year (starting from 0)

0 through 365

Week

---

---

W

ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)

Example: 42 (the 42nd week in the year)

Month

---

---

F

A full textual representation of a month, such as January or March

January through December

m

Numeric representation of a month, with leading zeros

01 through 12

M

A short textual representation of a month, three letters

Jan through Dec

n

Numeric representation of a month, without leading zeros

1 through 12

t

Number of days in the given month

28 through 31

Year

---

---

L

Whether it's a leap year

1 if it is a leap year, 0 otherwise.

o

ISO-8601 year number. This has the same value as Y , except that if the ISO week number (W ) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0)

Examples: 1999 or 2003

Y

A full numeric representation of a year, 4 digits

Examples: 1999 or 2003

y

A two digit representation of a year

Examples: 99 or 03

Time

---

---

a

Lowercase Ante meridiem and Post meridiem

am or pm

A

Uppercase Ante meridiem and Post meridiem

AM or PM

B

Swatch Internet time

000 through 999

g

12-hour format of an hour without leading zeros

1 through 12

G

24-hour format of an hour without leading zeros

0 through 23

h

12-hour format of an hour with leading zeros

01 through 12

H

24-hour format of an hour with leading zeros

00 through 23

i

Minutes with leading zeros

00 to 59

s

Seconds, with leading zeros

00 through 59

u

Microseconds (added in PHP 5.2.2)

Example: 654321

Timezone

---

---

e

Timezone identifier (added in PHP 5.1.0)

Examples: UTC , GMT , Atlantic/Azores

I (capital i)

Whether or not the date is in daylight saving time

1 if Daylight Saving Time, 0 otherwise.

O

Difference to Greenwich time (GMT) in hours

Example: +0200

P

Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3)

Example: +02:00

T

Timezone abbreviation

Examples: EST , MDT ...

Z

Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.

-43200 through 50400

Full Date/Time

---

---

c

ISO 8601 date (added in PHP 5)

2004-02-12T15:19:21+00:00

r

» RFC 2822 formatted date

Example: Thu, 21 Dec 2000 16:01:07 +0200

U

Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)

See also time()

Unrecognized characters in the format string will be printed as-is. The Z format will always return 0 when using gmdate()

Note :

integer timestamps the u format character is only useful when using the date_format() function with user based timestamps created with date_create()


timestamp


The optional timestamp parameter is an integer Unix timestamp that defaults to the current local time if a timestamp is not given. In other words, it defaults to the value of time()

 

 

 

 

举报

相关推荐

0 条评论