状态 草稿
Todo Proof read
官方最后更新时间 2008/05/01 20:31

日期辅助函数

用于在不同的格式之间对日期进行格式化以及对时间执行增减,修改。

方法

unix2dos()

'unix2dos' 把 UNIX time 转换到 DOS time 的参数:

  • [int] UNIX 时间戳

实例:

// 注意使用 print() 只是为了显示结果
$time = mktime(0, 0, 0, 31, 10, 1987);
print ($time);
$time = date::unix2dos($time);
print ($time);

返回结果:

616046400
317325312

dos2unix()

'dos2unix' 把 DOS time 转换到 UNIX time 的参数:

  • [int] DOS 时间戳

实例:

// 注意使用 print() 只是为了显示结果
$time = 317325312;
print ($time);
$time = date::dos2unix($time);
print ($time);

返回结果:

317325312
616046400

offset()

'offset' 计算两个时区的秒数,他有两个参数:

  • [int] 远程时区
  • [mixed] 本地时区? – 默认为 TRUE – 或者自行设定

实例:

// 注意使用 print() 只是为了显示结果
// 这里例子在美国东部时区下执行
print (date::offset('CST').'<br />');
print (date::offset('CST', 'MST').'<br />');
print (date::offset('UTC', 'GMT').'<br />');

返回结果:

-3600
3600
0

seconds()

'seconds' 基于你的输入创建数字数组。它有 3 个参数 :

  • [int] 步行 (count by) – 默认 = 1
  • [int] 始步数 – 默认 = 0
  • [int] 末尾数 – 默认 = 60

实例:

// 注意使用 print() 只是为了显示结果
print Kohana::debug(date::seconds());
print Kohana::debug(date::seconds(2,1,7));
print Kohana::debug(date::seconds(100,200,400));

返回结果:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
    [11] => 11
    [12] => 12
    [13] => 13
    [14] => 14
    [15] => 15
    [16] => 16
    [17] => 17
    [18] => 18
    [19] => 19
    [20] => 20
    [21] => 21
    [22] => 22
    [23] => 23
    [24] => 24
    [25] => 25
    [26] => 26
    [27] => 27
    [28] => 28
    [29] => 29
    [30] => 30
    [31] => 31
    [32] => 32
    [33] => 33
    [34] => 34
    [35] => 35
    [36] => 36
    [37] => 37
    [38] => 38
    [39] => 39
    [40] => 40
    [41] => 41
    [42] => 42
    [43] => 43
    [44] => 44
    [45] => 45
    [46] => 46
    [47] => 47
    [48] => 48
    [49] => 49
    [50] => 50
    [51] => 51
    [52] => 52
    [53] => 53
    [54] => 54
    [55] => 55
    [56] => 56
    [57] => 57
    [58] => 58
    [59] => 59
)
 
Array
(
    [1] => 1
    [3] => 3
    [5] => 5
)
 
Array
(
    [200] => 200
    [300] => 300
)

minutes()

请看 seconds

hours()

'hours' 从一个具体的时间点出发,计算距离一天结束还有多少个小时。它有 3 个参数:

  • [int] 步进 (count by) – 默认为 1
  • [boolean] 是否为 24 小时制 – 默认为 FALSE
  • [int] 起步时间 – 默认为 1

实例:

// 注意使用 print() 只是为了显示结果
// 这个例子使用的是 6:10PM EST (美国东部)
print Kohana::debug(date::hours());
print Kohana::debug(date::hours(1, TRUE, 9));
print Kohana::debug(date::hours(1, TRUE, 22));
print Kohana::debug(date::hours(1, TRUE, date('g'))); // 24小时格式且小时没有前导零

返回结果:

Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
    [11] => 11
    [12] => 12
)
 
Array
(
    [9] => 9
    [10] => 10
    [11] => 11
    [12] => 12
    [13] => 13
    [14] => 14
    [15] => 15
    [16] => 16
    [17] => 17
    [18] => 18
    [19] => 19
    [20] => 20
    [21] => 21
    [22] => 22
    [23] => 23
)
 
Array
(
    [22] => 22
    [23] => 23
)
 
Array
(
    [18] => 18
    [19] => 19
    [20] => 20
    [21] => 21
    [22] => 22
    [23] => 23
)

ampm()

'ampm' 检测提供的整数时间是 AM 还是 PM 。它有 1 个参数:

  • [int] 被预测的小时

实例:

// 注意使用 print() 只是为了显示结果
// 这个例子使用的是 5:45PM EST (美国东部)
print Kohana::debug(date::ampm(1));
print Kohana::debug(date::ampm(13));
print Kohana::debug(date::ampm(date('G'))); // 24小时格式且小时没有前导零

返回结果:

AM
PM
PM

days()

'days' 具体到某一年的某一个月的天数,它有两个参数:

  • [int] 月(1-12)
  • [int] 年 –默认是当前的年份

实例e:

// 注意使用 print() 只是为了显示结果
print Kohana::debug(date::days(5,2007));

返回结果:

Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
    [11] => 11
    [12] => 12
    [13] => 13
    [14] => 14
    [15] => 15
    [16] => 16
    [17] => 17
    [18] => 18
    [19] => 19
    [20] => 20
    [21] => 21
    [22] => 22
    [23] => 23
    [24] => 24
    [25] => 25
    [26] => 26
    [27] => 27
    [28] => 28
    [29] => 29
    [30] => 30
    [31] => 31
)

months()

'months' 返回年里月份数的镜像数组。

实例:

// 注意使用 print() 只是为了显示结果
print Kohana::debug(date::months());

返回结果:

Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
    [11] => 11
    [12] => 12
)

years()

'years' 对指定的年份间返回一个数组。它有两个参数:

  • [int] 起始年– 默认为当前年份 - 5
  • [int] 结束年 – 默认为当前年份 + 5

实例:

// 注意使用 print() 只是为了显示结果
// 这里为 2007
print Kohana::debug(date::years());
print Kohana::debug(date::years(1998,2002));

返回结果:

Array
(
    [2002] => 2002
    [2003] => 2003
    [2004] => 2004
    [2005] => 2005
    [2006] => 2006
    [2007] => 2007
    [2008] => 2008
    [2009] => 2009
    [2010] => 2010
    [2011] => 2011
    [2012] => 2012
)
 
Array
(
    [1998] => 1998
    [1999] => 1999
    [2000] => 2000
    [2001] => 2001
    [2002] => 2002
)

timespan()

'timespan' 返回两个时间戳之间的人类可读的格式。它有 3 个参数:

  • [int] 时间戳 1
  • [int] 时间戳 2 – 默认为当前时间戳
  • [string] 格式– 默认: '年,月,周,天,小时,分钟,秒'(years,months,weeks,days,hours,minutes,seconds)

实例:

// 注意使用 print() 只是为了显示结果
// 这里为 2007
$timestamp = time() - (60*60*24*7*31*3); // 651 天前的时间戳
$timestamp2 = time() - (60*60*24*7*50); // 350 天前的时间戳
print Kohana::debug(date::timespan($timestamp));
print Kohana::debug(date::timespan($timestamp, time(), 'years,days'));
print Kohana::debug(date::timespan($timestamp, $timestamp2));
print 'minutes: '.Kohana::debug(date::timespan($timestamp, time(), 'minutes'));

返回结果:

Array
(
    [years] => 1
    [months] => 9
    [weeks] => 2
    [days] => 2
    [hours] => 0
    [minutes] => 0
    [seconds] => 0
)
 
Array
(
    [years] => 1
    [days] => 286
)
 
Array
(
    [years] => 0
    [months] => 10
    [weeks] => 0
    [days] => 1
    [hours] => 0
    [minutes] => 0
    [seconds] => 0
)
 
minutes:

937440

adjust()

'adjust' 由一个非 24 小时格式的整数转化到到 24 小时格式的整数。它有两个参数:

  • [int] 非 24 小时格式的小时
  • [string] AM 或 PM

实例:

// 注意使用 print() 只是为了显示结果
print Kohana::debug(date::adjust(11, 'PM'));

返回结果:

23
helpers/date.txt · 最后更改: 2008/09/23 22:23 由 icyleaf