`
天梯梦
  • 浏览: 13729884 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

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 :

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() .

 

 

 

 

分享到:
评论

相关推荐

    php.ini-development

    [PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; PHP's initialization file, generally called php.ini, is responsible for ; configuring many of the aspects of PHP's behavior. ; PHP...

    CJuiDateTimePicker Yii中可用的日期-秒插件

    在这个例子中,`datetime_field`是模型中的字段名,`dateFormat`和`timeFormat`定义了日期和时间的显示格式,`changeMonth`和`changeYear`允许用户在下拉菜单中选择月份和年份。 在压缩包文件中,`wdueditor`可能是...

    laravel model模型定义实现开启自动管理时间created_at,updated_at

    Laravel模型中处理日期和时间的灵活性,让开发者在不同的场景中可以自由选择如何维护这些数据的存储和格式,使得模型与数据库的操作更加高效和方便。通过合理地使用$timestamps属性和$dateFormat属性,可以大大简化...

    Yii 2.0在Grid中格式化时间方法示例

    此外,Yii2.0框架还支持对时间戳进行格式化处理,格式化时不仅仅局限于日期,也可以包括时间信息。比如,若想格式化为 '年-月-日 时:分:秒' 的形式,可以设置 'dateFormat' 为 'yyyy-MM-dd HH:mm:ss'。 综上所述,...

    分享8个Laravel模型时间戳使用技巧小结

    在 Laravel 框架中,Eloquent ORM 提供了便捷的时间戳管理功能,这使得开发者能够轻松地处理数据创建和更新的时间记录。本文将详细解析8个关于Laravel模型时间戳使用的关键技巧。 1. **禁用时间戳** 当你的数据表...

    cms后台管理

    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/config/jeecms-servlet-front.xml...

    Yii框架小部件(Widgets)用法实例详解

    'dateFormat' =&gt; 'php:Y-m-d', ]); ``` 此外,Yii框架还提供了一种通过`yii\base\Widget::begin()`和`yii\base\Widget::end()`方法使用小部件的方式。这种方式可以在`begin()`和`end()`之间插入其他内容,并且在小...

    thinkphp5 模型实例化获得数据对象的教程

    - `dateFormat`: 时间字段格式。 - `type`: 数据表中各字段类型定义。 - `isUpdate`: 是否是更新操作。 - `updateWhere`: 更新条件。 - `relation`: 当前执行的关联条件。 - `failException`: 验证失败是否抛出异常...

Global site tag (gtag.js) - Google Analytics