代码:
<?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
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 :
Since this function only accepts 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() .