5.6.3 获取本地化时间戳函数
最后更新于:2022-04-02 00:19:51
在实际的工作中我们还需要经常用到指定某个时间生成。
> 例如:需要找到昨天到今天此时此刻的注册用户。
那么我们需要做两件事情:
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构造一个时间戳的功能。
~~~
~~~
运行程序结果如下所示:
1219036530
mktime函数的返回结果是一个Unix时间戳,对用户的含义不大,常常与date函数一起完成时间的转换。
例如,下面的代码实现对时间的运算:
~~~
~~~
我们使用的时候还经常需要使用到另外一个函数:strtotime()。
它的语法格式如下:
> int strtotime ( string $time [, int $now = time() ] )
它能将将英文文本的日期时间描述解析为 Unix 时间戳。
参数:
1. 传入一个字符串的时间
2. 可选参数为是否传入unix时间戳,如果不传则是当前的unix时间戳。
我们来实验一下,看看手册中提供的一些例子:
~~~
";
//2000年9月10日
echo strtotime("10 September 2000")."
"; //当前时间加一天 echo strtotime("+1 day")."
"; //当前时间加一周 echo strtotime("+1 week")."
"; //当前时间加一周2天4小时2秒 echo strtotime("+1 week 2 days 4 hours 2 seconds")."
"; //下一个星期四 echo strtotime("next Thursday")."
"; //上一个星期一 echo strtotime("last Monday")."
"; ?> ~~~ 通过上例发现,把一些时间通通加上了或者减去了英文中所表示的指定时间段。
';
"; //当前时间加一天 echo strtotime("+1 day")."
"; //当前时间加一周 echo strtotime("+1 week")."
"; //当前时间加一周2天4小时2秒 echo strtotime("+1 week 2 days 4 hours 2 seconds")."
"; //下一个星期四 echo strtotime("next Thursday")."
"; //上一个星期一 echo strtotime("last Monday")."
"; ?> ~~~ 通过上例发现,把一些时间通通加上了或者减去了英文中所表示的指定时间段。