php microtime(true) ,PHP 中的日期处理
1.时间戳
1)time
定义和用法
time() 函数返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。
语法
time();
返回值:返回包含当前时间的 Unix 时间戳的整数。
例:
<php
echo time();
?>
2)microtime
定义和用法
microtime() 函数返回当前 Unix 时间戳的微秒数。
语法
microtime(get_as_float);
参数描述
get_as_float可选。当设置为 TRUE 时,规定函数应该返回浮点数,否则返回字符串。默认为 FALSE。
返回值:
默认返回字符串 "microsec sec" ,其中 sec 为自 Unix 纪元(0:00:00 January 1, 1970 GMT)起的秒数,microsec 为微秒部分。
如果 get_as_float 参数设置为 TRUE,则返回浮点数,表示自 Unix 纪元起精确到微秒的以秒为单位的当前时间。
例:
<php
echo microtime();
?>
例:microtime.php
<?php
$start_time=microtime(true);
echo "$start_time"."<br>";
echo "hello world<br>"; //中间要运行的程序
$end_time=microtime(true);
echo "$start_time"."<br>";
$time=$end_time-$start_time;
echo '程序执行时间'.$time;
?>
结果:

3)mktime
定义和用法
gmmktime() 函数返回日期的 UNIX 时间戳。
提示:该函数与 gmmktime() 相同,不同的是传递的参数代表了日期(而不是 GMT 日期)。
语法
mktime(hour,minute,second,month,day,year,is_dst);
year 可选。规定年。
参数描述
hour可选。规定小时。
minute可选。规定分。
second可选。规定秒。
month可选。规定月。
day可选。规定天。
is_dst
可选。如果时间在夏令时 (DST) 期间,则设置为 1,否则设置为 0,若未知则设置为 -1(默认)。
如果未知,PHP 会自己进行查找(可能产生意外的结果)。
注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。
返回值:返回整数的 Unix 时间戳,如果错误则返回 FALSE。
例:mktime.php
<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));//当遇到天数超出范围时,mktime将自动调整
?>
结果:

2.获取日期和时间
1)getdate
定义和用法
getdate() 函数返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
语法
getdate(timestamp);
参数描述
timestamp可选。规定 Unix 时间戳,整数值。默认为当前本地时间(time())。
返回值:
返回带有与时间戳相关的信息的关联数组:
[seconds] - 秒
[minutes] - 分
[hours] - 小时
[mday] - 一个月中的第几天
[wday] - 一周中的某天
[mon] - 月
[year] - 年
[yday] - 一年中的某天
[weekday] - 星期几的名称
[month] - 月份的名称
[0] - 自 Unix 纪元以来经过的秒数
例:getdate.php
<?php
$time=getdate();//获取当时服务器是的日期与时间
//根据时间打招呼
if($time['hours']>=6 && $time['hours']<12){
$msg='上午好';
}else if($time['hours']>=12 && $time['hours']<18){
$msg='下午好';
}else{
$msg='晚上好';
}
echo $msg.'<br>';
//星期
echo '今天是'.$time['weekday'].'<br>';
//生日
if($time['mon']==4 && $time['mday']==13){
echo 'Happy Birthday!';
}
?>
结果:

2)gettimeofday
定义和用法
gettimeofday() 函数返回当前时间。
语法
gettimeofday(return_float);
参数描述
return_float可选。当设置为 TRUE 时,返回浮点数,而不是数组。默认是 FALSE。
返回值:
默认返回关联数组,带有如下数组键名:
[sec] - Unix 纪元以来的秒
[usec] - 微秒
[minuteswest] - 格林尼治以西的分
[dsttime] - 夏令时修正类型
如果 return_float 参数设置为 true,则返回浮点数。
例:gettimeofday.php
<?php
echo "<pre>";
print_r(gettimeofday());//打印字符串数组
echo "</pre>";
echo gettimeofday(true);//打印返回浮点数
?>
结果:

3)localtime
定义和用法
localtime() 函数返回本地时间。
语法
localtime(timestamp,is_assoc);
参数描述
timestamp可选。规定 Unix 时间戳。如果未规定 timestamp,则默认为当前的本地时间 time()。
is_assoc
可选。规定返回关联数组还是索引数组。如果为 FALSE,则返回索引数组。如果为 TRUE,则返回关联数组。默认为 FALSE。
关联数组的键名如下:
[tm_sec] - 秒数
[tm_min] - 分钟数
[tm_hour] - 小时
[tm_mday] - 月份中的第几天
[tm_mon] - 年份中的第几个月,从 0 开始表示一月份
[tm_year] - 年份,从 1900 开始
[tm_wday] - 星期中的第几天 (Sunday=0)
[tm_yday] - 年中的第几天
[tm_isdst] - 夏令时当前是否生效
返回值:返回包含 Unix 时间戳组件的数组。
例:localtime.php
<?php
$localtime = localtime();//获取本地时间
$localtime_assoc = localtime(time(), true);//获取返回包含字符串索引的数组
echo "<pre>";
print_r($localtime);//打印本地时间
print_r($localtime_assoc);//打印数组
echo "</pre>";
?>
结果:

3.日期和时间的格式化
语法
date(format,timestamp)
参数描述
format必需。规定时间戳的格式。
timestamp可选。规定时间戳。默认是当前时间和日期。
注释:时间戳是一种字符序列,它表示具体事件发生的日期和事件。
获得简单的日期
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。
例:date.php
<?php
isDate("Apr 25 2007 11:30AM");//调用isDate()函数
isDate("2007-04-25");//调用isDate()函数
function isDate($str) //创建一个函数 形参为$str
{
if (($timestamp = strtotime($str)) === false) { //将字符串转换成时间 转换失败返回-1或者false
echo "$str is not date";
} else {
echo "[$str] " . date("Y/m/d", $timestamp); //格式化打印时间
}
}
?>
结果:

注:strtotime 字符串到日期的函数
定义和用法
strtotime() 函数将任何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。
注意:如果年份表示使用两位数格式,则值 0-69 会映射为 2000-2069,值 70-100 会映射为 1970-2000。
注意:请注意 m/d/y 或 d-m-y 格式的日期,如果分隔符是斜线(/),则使用美洲的 m/d/y 格式。如果分隔符是横杠(-)或者点(.),则使用欧洲的 d-m-y 格式。为了避免潜在的错误,您应该尽可能使用 YYYY-MM-DD 格式或者使用 date_create_from_format() 函数。
语法
strtotime(time,now);
参数描述
time必需。规定日期/时间字符串。
now可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
返回值:若成功则返回时间戳,失败则返回 FALSE。
4.日期验证函数
1)客户端日期验证
check_client.html
<script language=javascript> //javascript脚本 字符串函数或者正则表达式进行判断
function isDate(obj) //定义一个函数
{
var strDate=obj.value; //创建一个变量来接对象的值
regx=/\d{4}\/\d{2}\/\d{2}/g //正则表达式
if(regx.test(strDate))
{
var DateArray=strDate.split("/");
var dateElement=new Date(DateArray[0],parseInt(DateArray[1])-1,DateArray[2]);
//判断日期逻辑
if(!((dateElement.getFullYear()==parseInt(DateArray[0]))&&
((dateElement.getMonth()+1)==parseInt(DateArray[1]))&&
(dateElement.getDate()==parseInt(DateArray[2]))))
{
alert("格式:YYYY/MM/DD");
obj.value='';
}
else
{
alert("正确");
}
}
else
{
alert("格式错误");
obj.value='';
}
}
</script>
<form name="form1">
<input name=time1>
<input name=button1 type="submit" onclick="isDate(form1.time1)">
</form>
结果:


2)服务器端日期验证
check_server.php
<?php
var_dump(checkdate(2, 29, 2007));//验证日期是否正确 错误返回false
var_dump(checkdate(4, 27, 2007));//验证日期是否正确 正确返回true
?>
结果:

checkdate() 函数用于验证格利高里日期(Gregorian date)。
语法
checkdate(month,day,year);
参数描述
month必需。规定月,从 1 到 12 的数字值。
day必需。规定日,从 1 到 31 的数字值。
year必需。规定年,从 1 到 32767 的数字值。
返回值:如果日期是有效的则返回 TRUE,否则返回 FALSE。
5.PHP时区的设置
PHP默认时区不是北京时间 修改在php.ini配置文件中
例:timezone.php
<?php
//ini_set('date.timezone','Asia/Shanghai');
ini_set('date.timezone','Asia/Hong_Kong');//修改 变量名和值
echo date("Y-m-d H:i:s"); //打印当前时间
?>
结果:

6.使用PEAR处理日期
PEAR是PHP的扩展应用库。
请大家多多关注,多多支持!谢谢......
相关推荐
-
「PHP」MVC框架是什么?为什么要用它2025-02-25 00:25:41
-
如何用PHP写一个比较安全的API系统(实现)2025-02-25 00:19:49
-
php 解析url获取相关信息2025-02-25 00:15:37
-
mysql命令总结和PyMysql2025-02-25 00:11:35
-
MySQL特性:深入理解ICP2025-02-25 00:11:07