annuaire recherche
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter 是什么? CodeIgniter 速记表 支持特性 应用程序流程图 模型-视图-控制器 架构目标 教程 内容提要 加载静态内容 创建新闻条目 读取新闻条目 结束语 常规主题 CodeIgniter URL 控制器 保留字 视图 模型 辅助函数 使用 CodeIgniter 类库 创建你自己的类库 使用 CodeIgniter 适配器 创建适配器 创建核心系统类 钩子 - 扩展框架的核心 自动装载资源 公共函数 URI 路由 错误处理 缓存 调试应用程序 以CLI方式运行 管理应用程序 处理多环境 PHP替代语法 安全 开发规范 类库参考 基准测试类 日历类 购物车类 配置类 Email 类 加密类 文件上传类 表单验证详解 FTP 类 图像处理类 输入类 Javascript 类 语言类 装载类 迁移类 输出类 分页类 模板解析器类 安全类 Session 类 HTML 表格类 引用通告类 排版类 单元测试类 URI 类 User-Agent 类 表单验证 XML-RPC 和 XML-RPC 服务器 Zip 编码类 缓存适配器 适配器参考 适配器 数据库类 Active Record 类 数据库缓存类 自定义函数调用 数据库配置 连接你的数据库 数据库快速入门例子代码 字段数据 数据库维护类 查询辅助函数 数据库类 查询 生成查询记录集 表数据 事务 数据库工具类 JavaScript类 辅助函数参考 数组辅助函数 CAPTCHA 辅助函数 Cookie Helper 日期辅助函数 目录辅助函数 下载辅助函数 Email 辅助函数 文件辅助函数 表单辅助函数 HTML辅助函数 Inflector 辅助函数 语言辅助函数 数字辅助函数 路径辅助函数 安全辅助函数 表情辅助函数 字符串辅助函数 文本辅助函数 排版辅助函数 URL 辅助函数 XML 辅助函数
personnages

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

日期辅助函数

日期辅助函数的文件涵盖了一些用于辅助日期数组操作的函数。

装载本辅助函数

本辅助函数的装载通过如下代码完成:

$this->load->helper('date');

可用的函数如下:

now()

返回当前的 Unix 时间戳,根据你的config文件中"time reference"设定返回服务器当前时间或者GMT时间。如果你没有计划使用GMT时间(通常是你准备在站点中允许用户选择时区设置),则此函数跟PHP中time()函数等同。

mdate()

这个函数跟PHP的内部函数date()几乎是一样的,区别在于,这个函数允许你使用在每个代码字母前带有百分号“%”的MySQL时间表达形式: %Y %m %d 等。

采用这种方式处理时间数据的优点在于,避免了你在使用date()函数时经常担心漏掉那些非时间的字符的问题。例如:

$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
$time = time();

echo mdate($datestring, $time);

如果第二参数中不包含时间戳则使用当前时间。

standard_date()

允许你从一些标准格式生成日期字符串。例子:

$format = 'DATE_RFC822';
$time = time();

echo standard_date($format, $time);

第一个参数必须包含格式,第二个参数必须使用unix时间戳。

支持格式:

常量 描述 例子
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 World Wide Web Consortium 2005-08-14T16:13:03+0000

local_to_gmt()

将unix时间戳转换为GMT。例子:

$now = time();

$gmt = local_to_gmt($now);

gmt_to_local()

输入一个GMT的unix时间戳,根据时区、夏时制转换为本地时间戳。例子:

$timestamp = '1140153693';
$timezone = 'UM8';
$daylight_saving = TRUE;

echo gmt_to_local($timestamp, $timezone, $daylight_saving);

注意:时区列表请参考本页末。

mysql_to_unix()

将MySQL时间戳转换为unix时间戳。例子:

$mysql = '20061124092345';

$unix = mysql_to_unix($mysql);

unix_to_human()

将unix时间戳转为如下人类可阅读格式:

YYYY-MM-DD HH:MM:SS AM/PM

本函数可用于需要作为表单提交的地方。

时间可以设置为含或者不含秒数,而且可以设为欧洲或美国格式。如果只有时间戳,则格式化为不含秒数的美国格式。例子:

$now = time();

echo unix_to_human($now); // U.S. time, no seconds

echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds

echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds

human_to_unix()

跟上面函数相反,这个函数将“人类”的时间表示方式(如,2008-12-31 04:38 PM)转换成unix的时间表示方式(如:1230713116)。这个函数在你接收一个从表单提交而来的“人类”的时间格式时会很有用。如果传递给这个函数的参数不是如上所说的“人类”时间格式的字符串,哪么它将返回FALSE (boolean)。例如:

$now = time();

$human = unix_to_human($now);

$unix = human_to_unix($human);

timespan()

格式化unix时间戳使其看起来像这样:

1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes

第一参数必须是unix时间戳,第二个参数是一个大于第一参数的时间戳。如果第二参数空缺,则使用当前时间。这个函数的用途通常是计算过去某一个时间点到现在的时间之间的时间差。例如:

$post_date = '1079621429';
$now = time();

echo timespan($post_date, $now);

Note:由本函数生成的文字可以在以下语言文件中找到: language/<your_lang>/date_lang.php

days_in_month()

对给出的年月值返回天数。这个函数的实现已经考虑了存在闰年和平年的情况。例如:

echo days_in_month(06, 2005);

如果省略第二参数则使用当前年。

timezones()

根据给定的时区参考(有效时区列表请参见下面的“时区参考”)返回跟UTC的相差值。

echo timezones('UM5');

本函数最有用是在使用timezone_menu()函数时.

timezone_menu()

生成一个时区下拉选单,像这样:

在你需要向你的网站会员提供他们所在时区的设置选项时这个选单会很有用的。

第一个参数让你设置选单的“已选”状态。例如,你想将美国西部标准时间设为默认时间,你可以这样做:

echo timezone_menu('UM8');

要得到这个选单的各个具体值,请看下面的时区参考表。

第二个参数让你为选单设置CSS的类名。

注意:上面选单里的每个条目可以在这个文件语言文件里找到: language/<your_lang>/date_lang.php

时区参考

下面的表说明了各个时区值以及该值对应的地点

时区 位置
UM12 (UTC - 12:00) 埃尼威托克, 夸贾林环礁
UM11 (UTC - 11:00) 诺姆, 中途岛, 萨摩亚
UM10 (UTC - 10:00) 夏威夷
UM9 (UTC - 9:00) 阿拉斯加
UM8 (UTC - 8:00) 太平洋时间(美国西部标准时间)
UM7 (UTC - 7:00) 山地时间(美国中西部时间)
UM6 (UTC - 6:00) 美国中部时间, 墨西哥城
UM5 (UTC - 5:00) 美国东部时间, 波哥大, 利马, 基多
UM4 (UTC - 4:00) 大西洋时间, 加拉加斯, 拉巴斯
UM25 (UTC - 3:30) 纽芬兰
UM3 (UTC - 3:00) 巴西, 布宜诺斯艾利斯, 乔治城, 福克兰群岛
UM2 (UTC - 2:00) 中部大西洋时间, 亚森欣岛, 圣赫勒拿
UM1 (UTC - 1:00) 亚速尔群岛, 佛得角群岛
UTC (UTC) 卡萨布兰卡, 都柏林, 爱丁堡, 伦敦, 里斯本, 蒙罗维亚
UP1 (UTC + 1:00) 柏林, 布鲁塞尔, 哥本哈根, 马德里, 巴黎, 罗马
UP2 (UTC + 2:00) 加里宁格勒, 南非, 华沙
UP3 (UTC + 3:00) 巴格达, 利雅得, 莫斯科, 内罗毕
UP25 (UTC + 3:30) 德黑兰
UP4 (UTC + 4:00) 阿布扎比, 巴库, 马斯喀特, 第比利斯
UP35 (UTC + 4:30) 喀布尔
UP5 (UTC + 5:00) 伊斯兰堡, 卡拉奇, 塔什干
UP45 (UTC + 5:30) 孟买, 加尔各答, 马德拉斯, 新德里
UP6 (UTC + 6:00) 阿拉木图, 哥伦巴, 达卡
UP7 (UTC + 7:00) 曼谷, 河内, 雅加达
UP8 (UTC + 8:00) 北京, 香港, 佩斯, 新加坡, 台北
UP9 (UTC + 9:00) 大阪, 札幌, 汉城, 东京, 雅库茨克
UP85 (UTC + 9:30) 阿德莱德, 达尔文
UP10 (UTC + 10:00) 墨尔本, 巴布亚新几内亚, 悉尼, 海参崴
UP11 (UTC + 11:00) 马加丹, 新喀里多尼亚, 所罗门群岛
UP12 (UTC + 12:00) 奥克兰, 惠灵顿, 斐济, 马绍尔群岛

 

翻译贡献者: Hex, mchong, pipi95, yinzhili
最后修改: 2011-02-01 00:10:12
Article précédent: Article suivant: