';//段楼开始标记
? echo $array1[1];//输出广州
? echo '
';//换行符
? echo $array2[0];//输出php
? echo '
'; ? echo '当前日期:'.date("Y-m-d",mktime()).'
';//输出2015-01-29 ? echo '当前时间:'.date("H:i:m",mktime()); ?> ? time()用于返回当前时间的时间戳,不带任何参数。 <?php ? echo '返回时间戳:'.time().'
'; ? echo '当前日期:'.date("Y-m-d",time()).'
'; ? echo '当前时间:'.date("H:i:m",time()); $nextWeek=time()+(7*24*60*60);//在当前时间戳上加上一周的时间 ? echo date("Y-m-d",$nextWeek); ?> ? 获取日期及时间 date(string format[,int timestamp]) 说明: 大写Y表示年四位数字,而小写y表示年的两位数字; 小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0); 没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。 大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f) 大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。 小结: 表示年可以用大写的Y和小写y; 表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式); 表示日可以用小写d和小写j,大写S表示日期的后缀。 小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。 当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。 大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数 小结: 字母g表示小时不带前导,字母h表示小时带前导; 小写g、h表示12小时制,大写G、H表示24小时制。 <?php ? echo date("y-m-d h:i:s").'
';//15-01-29 04:39:22 ? echo date("Y-n-j h:i:s").'
';//2015-1-29 04:39:22 ? echo date("Y-M-D h:i:s").'
';//2015-Jan-Thu 04:43:40 ? echo date("Y-F-jS h:i:s").'
';//2015-January-29th 04:45:41 ? echo date("H:i:s").'
';//16:47:08 ? echo date("g:i:s").'
';//4:47:08 ? echo date("g:i:s A").'
';//4:47:08 ?> ? 大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0; 小写l表示当天是星期几的英文全写(Tuesday); 而使用大写D表示星期几的3个字符缩写(Tue)。 小写w表示星期几,数字形式表示 大写W表示一年中的星期数 小写t表示当前月份又多少天 小写z表示今天是本年中第几天 <?php ? echo date("L")."
";//0 ? echo date('l')."
";//Thursday ? echo date('D')."
";//Thu ? echo date('w')."
";//2 ? echo date('W')."
";//05 ? echo date('t')."
";//31 ? echo date('z')."
";//28
?>
?
获取日期及时间的信息
getdate() 函数取得日期/时间信息。
getdate(timestamp)
?
键名
说明
返回值例子
"seconds"
秒的数字表示
0 到 59
"minutes"
分钟的数字表示
0 到 59
"hours"
小时的数字表示
0 到 23
"mday"
月份中第几天的数字表示
1 到 31
"wday"
星期中第几天的数字表示
0(表示星期天)到 6(表示星期六)
"mon"
月份的数字表示
1 到 12
"year"
4 位数字表示的完整年份
例如:1999 或 2003
"yday"
一年中第几天的数字表示
0 到 365
"weekday"
星期几的完整文本表示
Sunday 到 Saturday
"month"
月份的完整文本表示
January 到 December
0
自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似。
系统相关,典型值为从 -2147483648 到 2147483647。
?
<?php
? $arr=getdate();
? echo $arr[year]."-".$arr[mon]."-".$arr[mday]."
"; ? echo $arr[hours].":".$arr[minutes].":".$arr[seconds]; ?> ? 检查日期是否合法 checkdate() 函数验证一个格里高里日期。 日期在下列情况下为合法: month 介于且包括 1 - 12 Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。 year 介于且包括 1 到 32767 参数 描述 month 必需。规定月。 day 必需。规定日。 year 必需。规定年。 ? <?php ? var_dump(checkdate(12,31,2000));//ture ? var_dump(checkdate(2,29,2003));//false ? var_dump(checkdate(2,29,2004));//true ?> ? 设置本地化环境 string? setlocale(string? category [,string location]) 地区信息是针对一个地理区域的语言、货币、时间以及其他信息。 参数category可取值如下: LC_ALL - 包括下面的所有选项 LC_COLLATE -排序次序 LC_CTYPE - 字符类别及转换(例如所有字符大写或小写) LC_MESSAGES - 系统消息格式 LC_MONETARY - 货币格式 LC_N ? <?php ? setlocale(LC_ALL,"en_US");//设置本地环境; ? echo "美国格式:".strftime("Today is %A"); ? setlocale(LC_ALL,"chs");//设置本地环境; ? echo "中文简体格式:".strftime("Today is %A"); ?> 输出结果: 格式化输出日期和时间 string strftime ( string $format [, int $timestamp=time() ] ) 函数根据区域设置格式化本地时间/日期。 format?里能够识别的格式字串有以下标记: 格式 描述 返回值示例 日 --- --- %a 当前区域星期几的简写 Sun?到?Sat %A 当前区域星期几的全称 Sunday?到?Saturday %d 月份中的第几天,十进制数字(范围从 01 到 31) 01?到?31 %e 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31') 在 Windows 上尚未按描述实现。更多信息见下方。 1?到?31 %j 年份中的第几天,带前导零的三位十进制数(范围从 001 到 366) 001?到?366 %u 符合 ISO-8601 星期几的十进制数表达 [1,7],1 表示星期一 1?(星期一) 到?7?(星期日) %w 星期中的第几天,星期天为 0 0?(星期天) 到?6?(星期六) 周 --- --- %U 本年的第几周,从第一周的第一个星期天作为第一天开始 13?(for the 13th full week of the year) %V %V - 本年第几周的 ISO-8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。) 01?到?53?(where 53 accounts for an overlapping week) %W 本年的第几周数,从第一周的第一个星期一作为第一天开始 46?(for the 46th week of the year beginning with a Monday) 月 --- --- %b 当前区域月份的简写 Jan?到?Dec %B 当前区域月份的全称 January?到?December %h 当前区域月份的简写(%b 的别名) Jan?到?Dec %m 两位数的月份 01?(是一月份) 到?12?(是十二月份) 年 --- --- %C 两位数显示世纪(年份除以 100,截成整数) 19?是 20 世纪 %g 2 位数的年份,符合 ISO-8601:1988 星期数(参见 %V)。和 %V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。 比如:2009年1月6日那一周是?09。 %G %g 的完整四位数版本 比如:2009年1月3日那一周是?2008. %y 两位数显示年份 比如:?09?是 2009,79是 1979 %Y 四位数显示年份 比如:?2038 时间 --- --- %H 以 24 小时格式显示两位小时数 00?到?23 %I 以 12 小时格式显示两位小时数 01?到?12 %l('L' 的小写) 以 12 小时格式显示小时数,单个数字前含空格 1?到?12 %M 两位的分钟数 00?到?59 %p 指定时间的大写 “AM” 或 “PM” 比如: 00:31 是?AM?,22:23 是PM %P 指定时间的小写 “am” 或 “pm” 比如:00:31 是?am?,22:23 是pm %r 和 "%I:%M:%S %p" 一样 比如: 21:34:17 是09:34:17 PM %R 和 "%H:%M" 一样 比如: 12:35 AM 是00:35,4:44 PM 是?16:44 %S 两位数字表示秒 00?到?59 %T 和 "%H:%M:%S" 一样 比如: 09:34:17 PM 是21:34:17 %X 当前区域首选的时间表示法,不包括日期 例如:?03:59:16?或15:59:16 %z 从 UTC 的时区偏移 或 简写(由操作系统决定) 比如: 东部时间是-0500?或?EST %Z %z 没有给出的 UTC 的时区偏移 或 简写(由操作系统决定) 比如:?-0500?或?EST?是东部时间 时间和日期戳 --- --- %c 当前区域首选的日期时间表达 比如: 2009 年 2 月 5 日上午 12:45:10 是?Tue Feb 5 00:45:10 2009 %D 和 "%m/%d/%y" 一样 比如: 2009 年 2 月 5 日是?02/05/09 %F Same as "%Y-%m-%d" (commonly used in database datestamps) 比如:2009 年 2 月 5 日是?2009-02-05 %s Unix纪元的时间戳(和?time()?函数一样) 比如: 1979 年 9 月 10 日上午 8 点 40 分 00 秒是?305815200 %x 当前区域首选的时间表示法,不包括时间 比如: 2009 年 2 月 5 日是?02/05/09 其他 --- --- %n 换行符("\n") --- %t Tab 字符("\t") --- %% 文字上的百分字符("%") --- ? <?php ? setlocale(LC_TIME, "C"); ? echo strftime("%A")."
"; ? setlocale(LC_TIME, "fi_FI"); ? echo strftime(" in Finnish is %A,")."
"; ? setlocale(LC_TIME, "fr_FR"); ? echo strftime(" in French %A")."
"; ? setlocale(LC_TIME, "de_DE"); ? echo strftime(" in German %A.\n"); ?> ? 将日期和时间解析为时间戳 int strtotime ( string $time [, int $now ] ) strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。 一,获取指定日期的unix时间戳 strtotime("2009-1-22") 示例如下: echo strtotime("2009-1-22") 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间 (1)打印明天此时的时间戳strtotime("+1 day") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("+1 day")) 结果:2009-01-23 09:40:25 (2)打印昨天此时的时间戳strtotime("-1 day") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("-1 day")) 结果:2009-01-21 09:40:25 (3)打印下个星期此时的时间戳strtotime("+1 week") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("+1 week")) 结果:2009-01-29 09:40:25 (4)打印上个星期此时的时间戳strtotime("-1 week") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("-1 week")) 结果:2009-01-15 09:40:25 (5)打印指定下星期几的时间戳strtotime("next Thursday") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("next Thursday")) 结果:2009-01-29 00:00:00 (6)打印指定上星期几的时间戳strtotime("last Thursday") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("last Thursday")) 结果:2009-01-15 00:00:00 以上示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。 一,获取指定日期的unix时间戳 strtotime("2009-1-22") 示例如下: echo strtotime("2009-1-22") 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间 (1)打印明天此时的时间戳strtotime("+1 day") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("+1 day")) 结果:2009-01-23 09:40:25 (2)打印昨天此时的时间戳strtotime("-1 day") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("-1 day")) 结果:2009-01-21 09:40:25 (3)打印下个星期此时的时间戳strtotime("+1 week") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("+1 week")) 结果:2009-01-29 09:40:25 (4)打印上个星期此时的时间戳strtotime("-1 week") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("-1 week")) 结果:2009-01-15 09:40:25 (5)打印指定下星期几的时间戳strtotime("next Thursday") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("next Thursday")) 结果:2009-01-29 00:00:00 (6)打印指定上星期几的时间戳strtotime("last Thursday") 当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25 指定时间:echo date("Y-m-d H:i:s",strtotime("last Thursday")) 结果:2009-01-15 00:00:00 ? 时间大小的比较 使用strtotime可以实现时间的比较 <?php ? $time1=date("Y-m-s H:i:s"); ? $time2="2008-2-3 16:30:02"; ? $res=strtotime($time1)-strtotime($time2); ? echo $res; ?> 如果time1早于time2则返回小于0的数,如果晚于则返回大于0的数,否则返回0. <?php ? $time1=date("Y-m-s H:i:s"); ? $time2="2014-12-3 16:30:02"; ? $res=strtotime($time1)-strtotime($time2); ? $days=ceil($res/(24*60*60));//计算两个时间相隔的天数 ? $hours=ceil($res/3600);//计算两个时间相隔的小时数 ? echo "相隔".$days."天
"; ? echo "相隔".$hours."小时
";
?>
?
计算程序运行时间
string microtime(void)
返回时间戳和微妙数,中间用空格隔开。
<?php
? function run_time()
? {
list($msec,$sec)=explode(" ", microtime());
return ((float)$msec+(float)$sec);
? }
? $start_time=run_time();
? for($index=1;$index<100;$index++){
$sum=0;
for($k=1;$k<1000;$k++){
$sum=$sum+1;
}
? }
? $end_time=run_time();
? echo "用时:".($end_time-$start_time)."秒";
?>
?
创建Cookie
setcookie(name,value,expire,path,domain,secure)
参数
描述
name
必需。规定 cookie 的名称。
value
必需。规定 cookie 的值。
expire
可选。规定 cookie 的有效期。
path
可选。规定 cookie 的服务器路径。
domain
可选。规定 cookie 的域名。
secure
可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值. cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。cookie数据保存在文本文件中。
<?php
? setcookie("TMCookie","www.baidu.com");
? setcookie("TMCookie","www.baidu.com",time()+60);//设置有效时间为60秒
? $value="my cookie value";
? setcookie("TMCookie",$value,time()+3600,"/tm/","www.baidu.com",1)
?>
注:如果未设置Cookie的失效时间,则在关闭浏览器时自动删除Cookie数据。
读取Cookie
<?php
? if(!isset($_COOKIE["visitTime"])){//检测Cookie文件是否存在
setcookie("vistTime",date("Y-m-d H:i:s"));
echo '欢迎第一次访问';
? }
? else{
setcookie("vistTime",date("Y-m-d H:i:s"),time()+60);
echo '上次访问时间'.$_COOKIE["vistTime"];
? }
?>
?
<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");
?
// 输出 cookie (在重载页面后)
if (isset($_COOKIE["cookie"]))
? {
? foreach ($_COOKIE["cookie"] as $name=> $value)
? {
? echo "$name : $value
";
? }
? }
?>
?
删除Cookie
将setcookie函数第二个参数设置为空或者把失效时间设置为过去时间就可以删除cookie.
setcookie ("TestCookie", "", time() - 3600);
?
Cookie是存储在客户端的硬盘上的,而Session是存储在服务器上的,在PHP脚本中以变量形式创建。
?
<?php
? session_set_cookie_params(2*60);//设置session失效时间为2分钟
? session_start();//启动Session
? $_SESSION["admin"]="fearless";//声明session变量并赋值
? if(!empty($_SESSION["admin"])){
echo $_SESSION["admin"];
? }
? unset($_SESSION["admin"]);//注销会话
? if(!empty($_SESSION["admin"])){
echo $_SESSION["admin"];
? }
? else{
echo '会话不存在';
? }
?>
如果要删除多个会话可以通过一个空数组赋给$_SESSION来实现。
$_SESSION=array();
如果整个会话已结束应该注销所有的会话变量,然后使用session_destroy()函数清楚会话。
注意:session_set_cookie_params必须在session_start之前调用。
?
通过setcookie设置session失效时间。
<?php
? session_start();
? $time=60*60;//失效时间为60分钟
? setcookie(session_name(),session_id(),time()+$time,"/");
? $_SESSION["user"]="wit";
?>
?
设置session存储路径,session_save_path必须在session_start之前调用。
<?php
? session_save_path("https://blog.csdn.net/huzhizhewudi/article/details/tmp/");
? session_start();
? $_SESSION[username]=true;
?>
?
设置session缓存将网页中的内容暂时存储到客户端,提高网页访问速度。
<?php
? session_cache_limiter('private');//客气客户端缓存
? $limit=session_cache_limiter();
? session_cache_expire(30);
? $expire=session_cache_expire();
? session_start();
? echo $limit.'
';
? echo $expire;
?>
使用json_decode可以解析JSON格式内容。
【例1】
$json_string=' ';
$obj=json_decode($json_string);
echo $obj->name; //prints foo
echo $obj->interest[1]; //prints php
?
crypt()函数
string crypt ( string $str [, string $salt ] )
返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。此函数加密不可逆。
<?php
?if ( CRYPT_STD_DES?==? 1 ) {
? echo? 'Standard DES: '? .? crypt ( 'rasmuslerdorf' ,? 'rl' ) .? "\n" ;
}
?
if ( CRYPT_EXT_DES?==? 1 ) {
? echo? 'Extended DES: '? .? crypt ( 'rasmuslerdorf' ,? '_J9..rasm' ) .? "\n" ;
}
?
if ( CRYPT_MD5?==? 1 ) {
? echo? 'MD5:? '? .? crypt ( 'rasmuslerdorf' ,? '$1$rasmusle$' ) .? "\n" ;
}
?
if ( CRYPT_BLOWFISH?==? 1 ) {
? echo? 'Blowfish: '? .? crypt ( 'rasmuslerdorf' ,? '$2a$07$usesomesillystringforsalt$' ) .? "\n" ;
}
?
if ( CRYPT_SHA256?==? 1 ) {
? echo? 'SHA-256:? '? .? crypt ( 'rasmuslerdorf' ,? '$5$rounds=5000$usesomesillystringforsalt$' ) .? "\n" ;
}
?
if ( CRYPT_SHA512?==? 1 ) {
? echo? 'SHA-512:? '? .? crypt ( 'rasmuslerdorf' ,? '$6$rounds=5000$usesomesillystringforsalt$' ) .? "\n" ;
}
>
输出结果:
?
md5()函数
string md5 ( string $str [, bool $raw_output=false ] )
以 32 字符十六进制数字形式返回散列值。此函数加密不可逆。
<?php
$str?=? 'apple' ;
echo md5($str);
>
输出结果:
1f3870be274f6c49b3e31a0c6728957f
sha1()函数
string sha1 ( string $str [, bool $raw_output=false ] )
如果可选的 raw_output 参数被设置为 TRUE ,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。sha1加密不可逆。
<?php
$str?=? 'apple' ;
echo sha1($str);
>
输出结果:
d0be2dc421be4fcd0172e5afceea3970e2f3d940
文章来源:https://blog.csdn.net/huzhizhewudi/article/details/84439606
版权声明:转载请附上原文出处链接及本声明;
原文链接:/PHPxuexi/421.html