日期助手 | Date Helper
日期助手
Date Helper文件包含帮助您处理日期的函数。
- 加载此助手
- 可用职能
- 时区参考
加载此助手
使用以下代码加载此助手:
$this->load->helper('date'
可用职能
现有下列职能:
now([$timezone = NULL])
参数: | $ timezone(字符串) - 时区 |
---|---|
返回: | UNIX时间戳 |
返回类型: | INT |
$ timezone
(string
) - 时区返回:UNIX时间戳返回类型:int根据您的配置文件中的“时间参考”设置,将当前时间作为UNIX时间戳返回,根据服务器本地时间或任何PHP支持的时区。如果您不打算将您的主时间参考设置为任何其他PHP支持的时区(如果您运行的网站允许每个用户设置自己的时区设置,您通常会这样做),但使用PHPtime()
函数的此功能没有任何好处。现在回声('澳大利亚/维多利亚'); 如果未提供时区,它将time()
根据time_reference
设置返回。mdate([$datestr = ''[, $time = '']])
参数:$ datestr(string
) - 日期字符串$ time(int) - UNIX timestampReturns:MySQL格式的dateReturn类型:string
$ datestr
(字符串
) - 日期字符串
$ time
(int
) - UNIX时间戳
返回:MySQL格式的日期
返回类型:字符串
该函数与PHP的[date()](https://php.net/manual/en/function.date.php)函数相同,不同的是它允许使用MySQL风格日期代码,其中每个代码字母都以百分号,例如`%Y%m%d`
以这种方式进行日期的好处是,您不必担心会转义任何不是日期代码的字符,因为您通常需要处理该date()
函数。
例子:
$ datestring ='年:%Y月:%m日:%d - %h:%i%a'; $ time = time(); 回声mdate($日期字符串,$时间);
如果时间戳未包含在第二个参数中,则将使用当前时间。
standard_date([$fmt = 'DATE_RFC822'[, $time = NULL]])
参数: | $ fmt(字符串) - 日期格式$ time(int) - UNIX时间戳 |
---|---|
返回: | 格式化日期或FALSE格式无效 |
返回类型: | 串 |
$ fmt
(字符串
) - 日期格式
$ time
(int
) - UNIX时间戳
Returns: Formatted date or FALSE on invalid format
Return type: string
Lets you generate a date string in one of several standardized formats.
例子:
$ format ='DATE_RFC822'; $ time = time(); echo standard_date($ format,$ time);
注
这一功能已被废弃。使用本机date()
结合日期时间格式常数相反:
回声日期(DATE_RFC822,time());
支持格式:
Constant Description Example DATE\_ATOM Atom 2005-08-15T16:13:03+0000 DATE\_COOKIE HTTP Cookies Sun, 14 Aug 2005 16:13:03 UTC DATE\_ISO8601 ISO-8601 2005-08-14T16:13:03+00:00 DATE\_RFC822 RFC 822 Sun, 14 Aug 05 16:13:03 UTC DATE\_RFC850 RFC 850 Sunday, 14-Aug-05 16:13:03 UTC DATE\_RFC1036 RFC 1036 Sunday, 14-Aug-05 16:13:03 UTC DATE\_RFC1123 RFC 1123 Sun, 14 Aug 2005 16:13:03 UTC DATE\_RFC2822 RFC 2822 Sun, 14 Aug 2005 16:13:03 +0000 DATE\_RSS RSS Sun, 14 Aug 2005 16:13:03 UTC DATE\_W3C W3C 2005-08-14T16:13:03+0000
local_to_gmt([$time = ''])
参数: | $ time(int) - UNIX时间戳 |
---|---|
返回: | UNIX时间戳 |
返回类型: | INT |
$ time
(int
) - UNIX时间戳记返回:UNIX时间戳记返回类型:int
将UNIX时间戳记作为输入并将其作为GMT返回。例如:$ gmt = local_to_gmt(time());gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]])
参数:$ time
(int
) - UNIX时间戳$ time
zone(字符串) - 时区$ dst(bool) - DST是否为activeReturns:UNIX timestamp返回类型:int
$ time
(int
) - UNIX时间戳
$ timezone
(字符串
) - 时区
$ dst
(bool
) - DST是否处于活动状态
Returns: UNIX timestamp
Return type: int
Takes a UNIX timestamp (referenced to GMT) as input, and converts it to a localized timestamp based on the timezone and Daylight Saving Time submitted.
例子:
$ timestamp = 1140153693; $ timezone ='UM8'; $ daylight_saving = TRUE; echo gmt_to_local($ timestamp,$ timezone,$ daylight_saving);
注
有关时区的列表,请参阅本页底部的引用。
mysql_to_unix([$time = ''])
参数: | $ time(string) - MySQL时间戳 |
---|---|
返回: | UNIX时间戳 |
返回类型: | INT |
$ time
(string
) - MySQL时间戳记返回:UNIX时间戳记返回类型:int将MySQL时间戳记作为输入并将其作为UNIX时间戳记返回。例如:$ unix = mysql_to_unix('20061124092345');unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]])
参数:$ time
(int) - UNIX时间戳$ seconds(bool) - 是否显示秒数$ fmt(string
) - format(us或euro)返回:格式化dateReturn类型:string
$ time
(int
) - UNIX时间戳
$秒
(布尔
) - 是否显示秒
$ fmt
(字符串
) - 格式(美元或欧元)
Returns: Formatted date
Return type: string
Takes a UNIX timestamp as input and returns it in a human readable format with this prototype:
YYYYY-MM-DD HH:mm:SS AM/PM
如果您需要在表单字段中显示日期以供提交,这可能非常有用。
时间可以用秒来格式化,也可以设置为欧洲或美国格式。如果只提交时间戳,它将在没有秒的情况下返回美国格式的时间。
例子:
$ now = time(); echo unix_to_human($ now); // US time,no seconds echo unix_to_human($ now,TRUE,'us'); //美国时间秒钟回显unix_to_human($ now,TRUE,'eu'); //秒数的欧元时间
human_to_unix([$datestr = ''])
参数: | $ datestr(int) - 日期字符串 |
---|---|
返回: | UNIX时间戳或FALSE失败 |
返回类型: | INT |
$ datestr
(int
) - 日期字符串返回:UNIX时间戳或失败时的FALSE返回类型:int
与unix_to_time()
函数相反。将“人类”时间作为输入并将其作为UNIX时间戳返回。如果您接受通过表单提交的“人”格式的日期,这很有用。返回布尔型传递给它的FALSE日期字符串没有按照上面的说明格式化。例如:$ now = time(); $ human = unix_to_human($ now); $ unix = human_to_unix($ human);nice_date([$bad_date = ''[, $format = FALSE]])
参数:$ bad_date(int
) - 非常格式化的类日期字符串$ format(string) - 要返回的日期格式(与PHP的date()函数相同)返回:格式化dateReturn类型:string
$ bad_date
(int
) - 非常格式化的类似日期的字符串
$ format
(string
) - 返回的日期格式(与PHPdate()
函数相同)
Returns: Formatted date
Return type: string
This function can take a number poorly-formed date formats and convert them into something useful. It also accepts well-formed dates.
该函数默认返回一个UNIX时间戳。您可以选择传递格式字符串(与PHP date()
函数接受的类型相同)作为第二个参数。
例子:
$ bad_date ='199605'; //产生:1996-05-01 $ better_date = nice_date($ bad_date,'Ym-d'); $ bad_date ='9-11-2001'; //产生:2001-09-11 $ better_date = nice_date($ bad_date,'Ym-d');
注
这个函数被废弃了。日期时间类相反。
timespan([$seconds = 1[, $time = ''[, $units = '']]])
参数: | $ seconds(int) - 秒数$ time(字符串) - UNIX时间戳$ units(int) - 要显示的时间单位数 |
---|---|
返回: | 格式化时差 |
返回类型: | 串 |
$ seconds
(int
) - 秒数
$ time
(字符串
) - UNIX时间戳
$ units
(int
) - 要显示的时间单位数
Returns: Formatted time difference
Return type: string
Formats a UNIX timestamp so that is appears similar to this:
1年10个月2周5天10小时16分钟
第一个参数必须包含UNIX时间戳。第二个参数必须包含比第一个时间戳更大的时间戳。第三个参数是可选的,并限制显示时间单位的数量。
如果第二个参数为空,则将使用当前时间。
此函数最常见的目的是显示从过去某个时间点到现在已经过去了多长时间。
例子:
$ post_date ='1079621429'; $ now = time(); $ units = 2; 回声时间范围($ post_date,$ now,$ units);
注
此函数生成的文本位于以下语言文件中:language/<your_lang>/date_lang.php
days_in_month([$month = 0[, $year = '']])
参数: | $ month(int) - 数字月份$ year(int) - 数字年份 |
---|---|
返回: | 指定月份中的天数 |
返回类型: | INT |
$ month
(int
) - 数字月份
$ year
(int
) - 一个数字年份
Returns: Count of days in the specified month
Return type: int
Returns the number of days in a given month/year. Takes leap years into account.
例子:
echo days_in_month(06,2005);
如果第二个参数为空,则将使用当前年份。
注
此函数将别名本机cal_days_in_month()
,如果可以的话。
date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]])
参数: | $ unix_start(int) - 范围开始日期的UNIX时间戳$ mixed(int) - 范围结束日期或时间间隔的UNIX时间戳(以天为单位)$ is_unix(bool) - 如果$ mixed不是时间戳记,则设置为FALSE $ format ) - 输出日期格式与日期()中的相同 |
---|---|
返回: | 一组日期 |
返回类型: | 排列 |
$ unix_start
(int
) - 范围开始日期的UNIX时间戳
$ mixed
(int
) - 范围结束日期或间隔的UNIX时间戳,以天为单位
$ is_unix
(bool
) - 如果$ mixed不是时间戳,则设置为FALSE
$ format
(string
) - 输出日期格式,与in相同date()
Returns: An array of dates
Return type: array
Returns a list of dates within a specified period.
例子:
$ range = date_range('2012-01-01','2012-01-15'); 回声“2012年前15天:”; foreach($ range as $ date){echo $ date。“\ n”; }
timezones([$tz = ''])
参数: | $ tz(字符串) - 一个数字时区 |
---|---|
返回: | 与UTC的小时差异 |
返回类型: | INT |
$ tz
(string
) - 数字时区返回:与UTC的小时差值返回类型:int获取时区参考(有效时区列表,请参见下面的“时区参考”),并返回与UTC时差的小时数。例如:回声时区('UM5'); 使用此功能时非常有用timezone_menu()
。timezone_menu([$default = 'UTC'[, $class = ''[, $name = 'timezones'[, $attributes = '']]]])
参数:$ default(string
) - Timezone $ class(string) - 类名称$ name(string
) - 菜单名称$ attributes(mixed) - HTML属性返回:带时区的HTML下拉菜单返回类型:字符串
$ default
(string
) - 时区
$ class
(string
) - 类名
$ name
(字符串
) - 菜单名称
$ attributes
(mixed
) - HTML属性
Returns: HTML drop down menu with time zones
Return type: string
Generates a pull-down menu of timezones, like this one:
(UTC -12:00)贝克/豪兰岛(UTC -11:00)纽埃岛萨摩亚时区(UTC -10:00)塔希提岛库克群岛夏威夷阿留申标准时间(UTC -9:30)马克萨斯群岛UTC -9:00)阿拉斯加标准时间,甘比尔群岛(UTC -8:00)太平洋标准时间,克利珀顿岛(UTC -7:00)山区标准时间(UTC -6:00)中部标准时间(UTC -5: 00)东部标准时间,西加勒比海标准时间(UTC -4:30)委内瑞拉标准时间(UTC -4:00)大西洋标准时间,东加勒比标准时间(UTC -3:30)纽芬兰标准时间(UTC -3: 00)阿根廷,巴西,法属圭亚那,乌拉圭(UTC -2:00)南佐治亚/南桑威奇群岛(UTC -1:00)亚速尔群岛,佛得角群岛(UTC)格林尼治标准时间,西欧时间(UTC +1: 00)中欧时间,西非时间(UTC +2:00)中非时间,东欧时间,加里宁格勒时间(UTC +3:00)莫斯科时间,东非时间(UTC +3:30)伊朗标准时间(UTC +4:00)阿塞拜疆标准时间,萨马拉时间(UTC +4:30)阿富汗(UTC +5孟加拉国标准时间,叶卡捷琳堡时间(UTC +5:30)印度标准时间,斯里兰卡时间(UTC +5:45)尼泊尔时间(UTC +6:00)孟加拉国标准时间,不丹时间,鄂木斯克时间(UTC +6:30)科科斯群岛,缅甸(UTC +7:00)克拉斯诺亚尔斯克时间,柬埔寨,老挝,泰国,越南(UTC +8:00)澳大利亚西部标准时间,北京时间,伊尔库茨克时间(UTC +8:45)澳大利亚中部标准时间(UTC +9:00)日本标准时间,韩国标准时间,雅库茨克时间(UTC +9:30)澳大利亚中部标准时间(UTC +10:00)澳大利亚东部标准时间,符拉迪沃斯托克时间(UTC + 10:30)豪勋爵岛(UTC +11:00)Srednekolymsk时间,所罗门群岛,瓦努阿图(UTC +11:30)诺福克岛(UTC +12:00)斐济,吉尔伯特群岛,堪察加时间,新西兰标准时间(UTC +12:45)查塔姆群岛标准时间(UTC +13:00)凤凰城时间,汤加(UTC +14 :00)Line Islands如果您运行允许用户设置其本地时区值的成员资格网站,则此菜单很有用。
第一个参数允许您设置菜单的“选定”状态。例如,要将太平洋时间设置为默认设置,您将执行以下操作:
echo timezone_menu('UM8');
请参阅下面的时区引用,以查看此菜单的值。
第二个参数允许您为菜单设置CSS类名。
第四个参数允许您在生成的SELECT标记上设置一个或多个属性。
注
菜单中包含的文本位于以下语言文件中:language/<your_lang>/date_lang.php
时区参考
下表指出每个时区及其位置。
注意,为了清晰和格式化,一些位置列表已经被删减。
时区 | 位置 |
---|---|
UM12 | (UTC - 12:00)贝克/豪兰岛 |
UM11 | (UTC - 11:00)纽埃萨摩亚时区 |
M10 | (UTC - 10:00)库克群岛夏威夷阿留申标准时间 |
UM95 | (UTC - 09:30)马克萨斯群岛 |
UM9 | (UTC - 09:00)阿拉斯加标准时间,甘比尔群岛 |
UM8 | (UTC - 08:00)太平洋标准时间,克利珀顿岛 |
UM7 | (UTC - 07:00)标准时间 |
UM6 | (UTC - 06:00)中部标准时间 |
UM5 | (UTC - 05:00)西加勒比海东部标准时间 |
UM45 | (UTC - 04:30)委内瑞拉标准时间 |
UM4 | (UTC - 04:00)大西洋标准时间,东加勒比地区 |
UM35 | (UTC - 03:30)纽芬兰标准时间 |
UM3 | (UTC - 03:00)阿根廷,巴西,法属圭亚那,乌拉圭 |
UM2 | (UTC - 02:00)南乔治亚/南桑威奇群岛 |
UM1 | (UTC -1:00)佛得角群岛亚速尔群岛 |
世界标准时间 | (UTC)格林尼治标准时间,西欧时间 |
UP1 | (UTC +1:00)中欧时间,西非时间 |
UP2 | (UTC +2:00)中部非洲时间,东欧时间 |
UP3 | (UTC +3:00)莫斯科时间,东非时间 |
UP35 | (UTC +3:30)伊朗标准时间 |
UP4 | (UTC +4:00)阿塞拜疆标准时间,萨马拉时间 |
UP45 | (UTC +4:30)阿富汗 |
UP5 | (UTC +5:00)巴基斯坦标准时间,叶卡捷琳堡时间 |
UP55 | (UTC +5:30)印度标准时间,斯里兰卡时间 |
UP575 | (UTC +5:45)尼泊尔时间 |
UP6 | (UTC +6:00)孟加拉国标准时间,不丹时间,鄂木斯克时间 |
UP65 | (UTC +6:30)缅甸科科斯群岛 |
UP7 | (UTC +7:00)克拉斯诺亚尔斯克时间,柬埔寨,老挝,泰国,越南 |
UP8 | (UTC +8:00)澳大利亚西部标准时间,北京时间 |
UP875 | (UTC +8:45)澳大利亚中西部标准时间 |
UP9 | (UTC +9:00)日本标准时间,韩国标准时间,雅库茨克 |
UP95 | (UTC +9:30)澳大利亚中部标准时间 |
UP10 | (UTC +10:00)澳大利亚东部标准时间,符拉迪沃斯托克时间 |
UP105 | (UTC +10:30)豪勋爵岛 |
UP11 | (UTC +11:00)中科雷姆斯克时间,所罗门群岛,瓦努阿图 |
UP115 | (UTC +11:30)诺福克岛 |
UP12 | (UTC +12:00)斐济,吉尔伯特群岛,新西兰堪察加 |
UP1275 | (UTC +12:45)查塔姆群岛标准时间 |
UP13 | (UTC +13:00)凤凰岛时间,汤加 |
UP14 | (UTC +14:00)线路岛 |