日期函数/获取当前时间

用于获取当前系统的日期的函数

函数名 说明
date_default_timezone_set() 设置日期函数的默认时区
date_default_timezone_get() 获得日期函数的默认时区
time() 获得当前UNIX时间戳
date() 将时间戳转换成日期和时间
getdate() 获取日期信息

time()/时间戳

时间戳是一种事件表示方式,定义为自从Unix纪元(格林威治时间1970年1月1日)到当前的秒数

  1. echo time();

getdate()

  1. 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。
  1. $cd = getdate();
  2. foreach ($cd as $key => $value) {
  3. echo $key . "-->" . $value . "<br>";
  4. }

data()/格式化日期

格式化一个本地时间/时间

  1. date(string $format, int $timestamp = ?): string
  2. date($format [,$timestamp])
  3. //其中参数 format 表示时间格式化的方式;
  4. //可选参数timestamp表示时间戳,默认为time(),即当前时间。
  5. 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
  1. // 年-月-日
  2. echo date("y-m-d");
  3. echo "<br>";
  4. echo date("Y-m-d");
  5. echo "<br>";
  6. // 年/月/日
  7. echo date("Y/m/d");
  8. echo "<br>";
  9. // xx年xx月xx日
  10. echo date("Y年m月d日");
  11. echo "<br>";
  12. // 时:分:秒
  13. echo date("h:i:s");
  14. echo "<br>";
  15. echo date("H:i:s");
  16. echo "<br>";
  17. // 年月日 时分秒
  18. echo date("Y/m/d H:i:s");
  19. echo "<br>";
  20. // L 是否为闰年 ,如果是闰年为 1,否则为 0
  21. echo date("Y-m-d -> L");

date_default_timezone_get()

  1. date_default_timezone_get(): string

取得一个脚本中所有日期时间函数所使用的默认时区

data_default_timezone_set()/设置时区

  1. date_default_timezone_set(string $timezone_identifier): bool

设定用于一个脚本中所有时期时间函数的默认时区
所支持的时区列表:

  1. echo date_default_timezone_get();
  2. // 格林尼治时间
  3. date_default_timezone_set("UTC");
  4. echo "<br>";
  5. echo date_default_timezone_get();
  6. // 亚洲/上海时区
  7. date_default_timezone_set("Asia/Shanghai");
  8. echo "<br>";
  9. echo date_default_timezone_get();
  10. echo "<br>";
  11. // PRC the People's Republic of China 中华人民共和国 (可认为是北京时间)
  12. date_default_timezone_set("PRC");
  13. echo "<br>";
  14. echo date_default_timezone_get();

strtotime()

  1. strtotime(string $datetime, int $now = time()): int

将任何字符串的日期时间描述解析为 Unix 时间戳

  1. echo strtotime("now"), "\n";
  2. echo strtotime("10 September 2000"), "\n";
  3. echo strtotime("+1 day"), "\n";
  4. echo strtotime("+1 week"), "\n";
  5. echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
  6. echo strtotime("next Thursday"), "\n";
  7. echo strtotime("last Monday"), "\n";
  8. // 今天的时间
  9. echo date("Y-m-d H:i:s");
  10. echo "<br>";
  11. $t = "+1 day";
  12. $time = strtotime($t);
  13. // 明天的这个时间
  14. 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.

  1. bool setcookie(名称,值)
  2. //注意:Cookie会在会话结束(浏览整体关闭)时失效.
  3. bool setcookie(名称,值,有效期)
  4. //注意:Cookie会在有效期过后消失

读取Cookie:【$_COOKIE】

PHP提供了全局变量$_COOKIE来读取Cookie的值.
用法和 $_GET, $_POST 等全局变法相同.

  1. $变量 = $_COOKIE["名称"];

例如:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. setcookie("userName","张小明",time()+3600);
  4. //创建Cookie
  5. if(isset($_COOKIE["userName"])){
  6. $name = $_COOKIE["userName"];
  7. //通过cookie名称获得cookie的值
  8. echo $name;
  9. }
  10. else{
  11. echo "Cookie还未创建";
  12. }

删除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还未创建";
}