日期函数/获取当前时间
用于获取当前系统的日期的函数
| 函数名 | 说明 |
|---|---|
| date_default_timezone_set() | 设置日期函数的默认时区 |
| date_default_timezone_get() | 获得日期函数的默认时区 |
| time() | 获得当前UNIX时间戳 |
| date() | 将时间戳转换成日期和时间 |
| getdate() | 获取日期信息 |
time()/时间戳
时间戳是一种事件表示方式,定义为自从Unix纪元(格林威治时间1970年1月1日)到当前的秒数
echo time();
getdate()
gatdate(int $timestamp = time()):array
返回一个根据timestamp参数是一个int的Unix时间戳,如未指定或是null,参数值默认为当前本地时间。也就是说,其默认值为time()的返回值。
返回一个根据timestamp得出的包含有日期信息的关联数组array。返回的关联数组的键名单元有以下几个:
| 键名 | 说明 | 返回值例子 |
|---|---|---|
| “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 或 March | January 到 December |
| 0 | 自从 Unix 纪元开始至今的秒数, 和 time()的返回值以及用于 date()的值类似。 |
系统相关,典型值为从 -2147483648 到 2147483647。 |
$cd = getdate();foreach ($cd as $key => $value) {echo $key . "-->" . $value . "<br>";}
data()/格式化日期
格式化一个本地时间/时间
date(string $format, int $timestamp = ?): stringdate($format [,$timestamp])//其中参数 format 表示时间格式化的方式;//可选参数timestamp表示时间戳,默认为time(),即当前时间。date("Y/m/d", $tomorrow);
返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当地时间。
常用日期格式字符:
| 格式字符 | 说明 | 返回值 |
|---|---|---|
| Y | 4位数表示的年份 | 例如:1999或2020 |
| y | 2位数表示的年份 | 例如:99或20 |
| m | 数字表示的月份,有前导零 | 例如:01或12 |
| M | 三个字母缩写表示的月份 | 例如:Jan或Dec |
| d | 月份中的第几天,有前导零 | 例如:01或31 |
| j | 月份中的第几天,没有前导零 | 例如:1或31 |
| w | 星期中的第几天 | 例如:0(表示星期天)或6(表示星期六) |
| H | 小时,24小时格式,有前导零 | 例如:00中23 |
| h | 小时,12小时格式,有前导零 | 例如:01或12 |
| G | 小时,24小时格式,没有前导零 | 例如:0或23 |
| g | 小时,12小时格式,没有前导零 | 例如:1或12 |
| i | 分钟,有前导零 | 例如:00或59 |
| s | 秒数,有前导零 | 例如:00或59 |
// 年-月-日echo date("y-m-d");echo "<br>";echo date("Y-m-d");echo "<br>";// 年/月/日echo date("Y/m/d");echo "<br>";// xx年xx月xx日echo date("Y年m月d日");echo "<br>";// 时:分:秒echo date("h:i:s");echo "<br>";echo date("H:i:s");echo "<br>";// 年月日 时分秒echo date("Y/m/d H:i:s");echo "<br>";// L 是否为闰年 ,如果是闰年为 1,否则为 0echo date("Y-m-d -> L");
date_default_timezone_get()
date_default_timezone_get(): string
data_default_timezone_set()/设置时区
date_default_timezone_set(string $timezone_identifier): bool
设定用于一个脚本中所有时期时间函数的默认时区
所支持的时区列表:
echo date_default_timezone_get();// 格林尼治时间date_default_timezone_set("UTC");echo "<br>";echo date_default_timezone_get();// 亚洲/上海时区date_default_timezone_set("Asia/Shanghai");echo "<br>";echo date_default_timezone_get();echo "<br>";// PRC the People's Republic of China 中华人民共和国 (可认为是北京时间)date_default_timezone_set("PRC");echo "<br>";echo date_default_timezone_get();
strtotime()
strtotime(string $datetime, int $now = time()): int
将任何字符串的日期时间描述解析为 Unix 时间戳
echo strtotime("now"), "\n";echo strtotime("10 September 2000"), "\n";echo strtotime("+1 day"), "\n";echo strtotime("+1 week"), "\n";echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";echo strtotime("next Thursday"), "\n";echo strtotime("last Monday"), "\n";// 今天的时间echo date("Y-m-d H:i:s");echo "<br>";$t = "+1 day";$time = strtotime($t);// 明天的这个时间echo date("Y-m-d H:i:s", $time);
Cookie
是一种在客户端存储数据并由这些数据来跟踪和识别用户的机制.
Cookie在Web服务端产生,并以文本文件形式存储在了客户端电脑的硬盘上.
Cookie是一段不超过4kb的小型文本数据,有一个名称(Name),一个值(Value)和其他几个用于控制Cookie有效期、安全性、适用范围的可选属性组成。
意思:
HTTP本身是无状态(即服务器无法判断用户身份)的。
Cookie实际上是一小段的文本信息(key-value格式)。
客户端向服务器发送请求,如果服务器需要记录该用户状态,就使用respones向客户端浏览器颁发一个Cookie。
客户端浏览器会把Cookie保存起来,当浏览器再请求该网站时,浏览器把请求网址连同Cookie一同体检给服务器。
服务器检查该Cookie,依次来辨认用户状态。
打个比方,我们去银行办理储蓄业务,第一次银行给办了,里面放了身份证,密码,手机等个人信息。当你下次再来这个银行时,银行机器能识别你的卡,从而直接办理业务。
作用:
1.记录用户信息,如上次登陆的用户名等.
2.页面之间传递参数.
3.将HTML页面存储到Cookie中,提高页面浏览速度.
4.实现记录用户个人信息的功能。
注意:
Cookie是不可以跨域名的,隐私安全机制禁止网站非法获取其他网络的Cookie。
比如:淘宝的Cookie信息,京东是不能使用的,也不允许获取。
创建Cookie:【.setcookie(名称,值)】
在PHP中.setcookie(名称,值)可以用开创建Cookie,但是如果客户端浏览器禁用了Cookie,则setcookie()函数会返回false.
bool setcookie(名称,值)//注意:Cookie会在会话结束(浏览整体关闭)时失效.bool setcookie(名称,值,有效期)//注意:Cookie会在有效期过后消失
读取Cookie:【$_COOKIE】
PHP提供了全局变量$_COOKIE来读取Cookie的值.
用法和 $_GET, $_POST 等全局变法相同.
$变量 = $_COOKIE["名称"];
例如:
<?phpheader("content-type:text/html;charset=utf-8");setcookie("userName","张小明",time()+3600);//创建Cookieif(isset($_COOKIE["userName"])){$name = $_COOKIE["userName"];//通过cookie名称获得cookie的值echo $name;}else{echo "Cookie还未创建";}
删除Cookie:【值设为空】
没有设置有效期的 Cookie,在浏览器整体关闭时,就会自动删除。
设置了有效期的 Cookie,在过了有效期之后,也会自动删除。
<?php
header("content-type:text/html;charset=utf-8");
setcookie("userName","张小明",time()+3600);
setcookie("userName","");
//通过 setcookie() 函数,将名称为 “userName” 的 Cookie 值删除
//也就是把值设置成空
if(isset($_COOKIE["userName"])){
$name = $_COOKIE["userName"];
echo $name;
}
else{
echo "Cookie还未创建";
}
