|
代码:
<?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
:
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()
. |
|