• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP时间和日期

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、unix时间戳

起始时间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";//输出今天是一年中的第几天

2、php时区

获取服务器时区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.

3、格式化输出日期

date函数用于获取格式化后的日期:string date ( string $format [, int $timestamp ] ),返回将整数 timestamp 按照给定的格式字串而产生的字符串。

format :必须,规定时间戳的格式。timestamp :可选。规定时间戳。默认值是当前时间戳time()。

常用格式化字符

用于日期

的字符

表示年(四位数)
m/n 01-12月/1-12月
d/j 01-31天/1-31天
w 月里的某周0-6|
表示周里的某天
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>";

 

4、自定义日期

使用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 ." 天。";

5、验证日期存在性

使用checkdate()函数验证日期

$year = 2008;
$month = 2;
$day1 = 29;
$day2 = 30;
var_dump(checkdate($month,$day1,$year));
var_dump(checkdate($month,$day2,$year));

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php设置时区的两种方法发布时间:2022-07-10
下一篇:
PHP网站开发方案(开发新人必读)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap