返回介绍

5.6.3 获取本地化时间戳函数

发布于 2025-01-30 22:11:32 字数 1899 浏览 0 评论 0 收藏 0

在实际的工作中我们还需要经常用到指定某个时间生成。

例如:需要找到昨天到今天此时此刻的注册用户。

那么我们需要做两件事情:

  1. 得到当前的时间 unix 时间戳。用 time() 函数就可以直接搞定
  2. 那么昨天指定时间该怎么生成呢。这个时候我们就需要使用到 mktime() 函数。简称:make time.创建时间。

生成出来的时间最好是 unix 时间戳。因为是 1970 年 1 月 1 日 0 时到现在的时间。我们做一个区间判断,就把昨天到今天注册的用户按照时间筛选出来了。

我们的 mktime() 函数可以对一个日期和时间获得一个本地化时间戳。其语法格式如下所示:

int mktime (int $hour [, int $minute [, int $second [, int $month [, int $day [. int$year [, int $.is_dstl.l } ] ] 31 )

函数的参数分别表示:时、分、秒、月、日、年、是否为夏令时。在使用这个函数时,需要注意所列的参数要与函数的参数含义相同。例如,下面的代码实现了用 mktime 构造一个时间戳的功能。

<?php
echo  mktime (13 ,15 , 3 0, 8,18, 2008) ;
?>

运行程序结果如下所示:

1219036530

mktime 函数的返回结果是一个 Unix 时间戳,对用户的含义不大,常常与 date 函数一起完成时间的转换。

例如,下面的代码实现对时间的运算:

<?php 
echo date("m-d-Y h:m:s")."\n";
echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d"),date("Y")))."\n";
echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d")-30,date("Y")))."\n";

?>

我们使用的时候还经常需要使用到另外一个函数:strtotime()。

它的语法格式如下:

int strtotime ( string $time [, int $now = time() ] )

它能将将英文文本的日期时间描述解析为 Unix 时间戳。

参数:

  1. 传入一个字符串的时间
  2. 可选参数为是否传入 unix 时间戳,如果不传则是当前的 unix 时间戳。

我们来实验一下,看看手册中提供的一些例子:

<?php
//now 为现在的当前时间
echo strtotime("now")."<br />";
//2000 年 9 月 10 日
echo strtotime("10 September 2000")."<br />";
//当前时间加一天
echo strtotime("+1 day")."<br />";
//当前时间加一周
echo strtotime("+1 week")."<br />";
//当前时间加一周 2 天 4 小时 2 秒
echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br />";
//下一个星期四
echo strtotime("next Thursday")."<br />";
//上一个星期一
echo strtotime("last Monday")."<br />";
?>

通过上例发现,把一些时间通通加上了或者减去了英文中所表示的指定时间段。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文