起始时间1970年1月1日至今走过的秒数
time():返回当前时间戳(秒)ps:java getTime()返回的是毫秒
microtime(); //- 返回微秒数 当前 Unix时间戳,(1s=1000ms,1 ms=1000μs),它的结果是字符串,分两部分,前半部分是微秒(但是单位是秒),后半部分是秒。
返回字符串格式示例:0.80238600 1550278914
应用:使用microtime函数获取毫秒
function msectime(){ list($msec, $sec) = explode(‘ ‘, microtime()); return (float)sprintf(‘%.0f‘, (floatval($msec) + floatval($sec)) * 1000); }
计算页面的运行时间
function run_time(){
list($msec, $sec) = explode(" ", microtime());
return ((float)$msec + (float)$sec);
}
$start_time = run_time();
$end_time = run_time();
echo ‘该示例的运行时间为‘.($end_time - $start_time).‘秒‘;
getdate — 取得日期/时间信息:array getdate ([ int $timestamp
= time() ] )
返回一个根据 timestamp
得出的包含有日期信息的关联数组 array。如果没有给出时间戳则认为是当前本地时间。
$arr = getdate();//使用getdate()函数将当前信息保存 print_r($arr); echo $arr[‘year‘]."-".$arr[‘mon‘]."-".$arr[‘mday‘]." ";//返回当前的日期信息 echo $arr[‘hours‘].":".$arr[‘minutes‘].":".$arr[‘seconds‘]." ".$arr[‘weekday‘];//返回当前的时间信息 echo "<p>Today is the $arr[yday]th of year";//输出今天是一年中的第几天
获取服务器时区date_default_timezone_get();
设置服务器时区
如果从代码返回的不是正确的时间,有可能是因为服务器位于其他国家或者被设置为不同时区。中国时区可设置为"Asia/Shanghai"或"PRC"
方法1、配置文件修改
在php.ini里加上找到date.timezone项,设置date.timezone = "Asia/Shanghai",重启环境。
方法2、在页面添加date_default_timezone_set("PRC");
方法3、在页头加上设置时区ini_set(‘date.timezone‘,‘Asia/Shanghai‘);
设置时区,时区设置不正确会抛出错误:It is not safe to rely on the system‘s timezone settings.
date函数用于获取格式化后的日期:string date ( string $format
[, int $timestamp
] ),返回将整数 timestamp
按照给定的格式字串而产生的字符串。
format :必须,规定时间戳的格式。timestamp :可选。规定时间戳。默认值是当前时间戳time()。
常用格式化字符 | ||
用于日期 的字符 |
Y | 表示年(四位数) |
m/n | 01-12月/1-12月 | |
d/j | 01-31天/1-31天 | |
w | 月里的某周0-6| | |
1 | 表示周里的某天 | |
t | 某月天数 | |
L | 是否闰年 | |
用于时间 的字符 |
H/h | 00-24时/00-12时 |
i | 00-59分 | |
s | 00-59秒 | |
A/a | AM或PM/am或pm | |
其他字符 | "/"、 "." 、 "-" 、":"等 | 插入字符中,以增加其他格式。 |
闰年定义:
a.能被4整除且不被100整除
b.若能被100整除,则同时要被400整除
// 用三种不同方法格式今天的日期 echo ‘今天是 ‘ . date(‘Y/m/d‘) .‘<br>‘; echo ‘今天是 ‘ . date(‘Y.m.d‘) .‘<br>‘; echo ‘今天是 ‘ . date(‘Y-m-d‘) .‘<br>‘; echo ‘今天是 ‘ . date(‘l‘).‘<br>‘; echo ‘现在时间是 ‘ . date(‘h:i:sa‘).‘<br>‘; echo ‘完整的日期和时间是 ‘.date(‘Y-m-d h:i:sa‘).‘<br>‘;
echo date("l Y-m-d H:i:s T"); //除了时间,再输出星期及所在时区
小应用:自动更新版权年份? 2010-<?php echo date("Y")?>
使用预定义常量输出不同格式的时间和日期
echo "<p>DATE_ATOM = ".date(DATE_ATOM); echo "<p>DATE_COOKIE = ".date(DATE_COOKIE); echo "<p>DATE_ISO8601 = ".date(DATE_ISO8601); echo "<p>DATE_RFC822 = ".date(DATE_RFC822); echo "<p>DATE_RFC850 = ".date(DATE_RFC850); echo "<p>DATE_RSS = ".date(DATE_RSS); echo "<p>DATE_W3C = ".date(DATE_W3C)."<p>";
使用mktime函数可以返回指定时间的时间戳:mktime(hour,minute,second,month,day,year)
$d=mktime(15, 23, 30, 2, 16, 2019); echo "创建日期是 " . date("Y-m-d h:i:sa", $d). "<br>";//创建日期是 2019-02-16 03:23:30pm
strtotime() 把日期字符串转成时间戳,用于把人类可读的字符串转换为 Unix 时间。
$d=strtotime("now"); $d=strtotime("3:38pm April 15 2018"); echo date("Y-m-d h:i:sa", $d); $d=strtotime("tomorrow"); //明天 $d=strtotime("next Saturday"); //下周六 $d=strtotime("next Week");//下周 $d=strtotime ("last Monday");//上周一$d=strtotime("+3 Months"); //三个小时后
输出下6个周六的日期:
$startdate = strtotime("Saturday"); $enddate = strtotime("+6 weeks",$startdate); while ($startdate < $enddate) { echo date("M d", $startdate),"<br>"; $startdate = strtotime("+1 week", $startdate); }
输出12月31日之前的天数:
$d1=strtotime("December 31"); $d2=ceil(($d1-time())/60/60/24); echo "距离十二月三十一日还有:" . $d2 ." 天。";
使用checkdate()函数验证日期
$year = 2008; $month = 2; $day1 = 29; $day2 = 30; var_dump(checkdate($month,$day1,$year)); var_dump(checkdate($month,$day2,$year));
原文:https://www.cnblogs.com/chuanzi/p/10386889.html