PHP获取当前时间、年份、月份、日期和天数

获取当前时间,需要用到 PHP Date() 函数

PHP Date() 把时间戳格式化为更易读的日期和时间。

语法:

date(format,timestamp)

其中参数 format 为显示格式,参数 timestamp 为时间戳,是可选择的,默认为 time() ,即如果没有给出时间戳则使用本地当前时间。

format 格式参数在这里简单介绍几个:

一些常用于日期的字符:

Y - 完整表示份(四位数字:2019)

y - 表示份(两位数字:19)

F - 表示份(完整的文本格式: January 或者 March)

M - 表示份(3个字母:Jun)

m - 表示份,有前导0(数字:04)

n - 表示份,无前导0(数字:4)

d - 表示月份中的第几,有前导0(01-31)

j -  表示月份中的第几,无前导0(1-31)

D - 表示星期几(3字母:Wed)

l - 表示星期几(完整英文:Wednesday)

w - 表示星期中的第天(数字,0表示星期天)

W - 表示一中的第几周

z - 表示一中的第几天(0-366)

实例:

<?php
    echo "<p>今天是:" . date("Y/m/d") . "</p>";
    echo "<p>今天是:" . date("Y.m.d") . "</p>";
    echo "<p>今天是:" . date("Y-m-d") . "</p>";
    echo "<p>今天是:" . date("l") . "</p>";
?>

运行结果:

如果想要中文年月日,可以这样写:

echo "现在时间是:" . date("Y年m月d日");

运行结果:

今天是:2019年04月24日

获得简单的时间:

常用于时间的字符:

H - 24小时格式,有前导0(08,18)

h - 12小时格式,有前导0(06,11)

G - 24小时格式,无前导0(9,17)

g - 12小时格式,无前导0(6,12)

i - 表示分钟,有前导0(00-59)

s - 表示秒,有前导0(00 -59)

A - 大写的午前和午后(AM 或 PM)

a - 小写的午前和午后(am 或 pm)

I - 判断是否为夏令时

实例:

<?php
    echo "现在时间是:" . date("h:i:sa");
?>

运行结果:

获得时区:

如果需要基于具体位置的准确时间,可以设置要用的时区。

下面是把时区设置为 "Asia/Shanghai",然后以指定格式输出当前时间:

实例:

<?php
    date_default_timezone_set("Asia/Shanghai");
    echo "当前时间是:" . date("h:i:sa");
?>

getdate:获取日期信息

通过 getdate() 函数可以获取日期信息,而该函数返回值为一个数组,其中包括指定的日期和时间信息。如果没有给出时间戳,则输出的是本地当前的日期和时间。 声明如下:

array getdate(int timestamp);

<?php
    print_r(getdate());
?>

checkdate:检验日期的有效性

程序开发过程中,在需要设计填写日期和时间的模块中,有时会因为录入失误,而产生错误。为了避免些类问题的出现,在设计时就要对日期进行检验,就是利用  checkdate 函数。声明如下:

bool checkdata(int month,int day,int year);

如果检验有效,返回 true ,否则返回 falsemonth 的有效值在1-12,day 在给定的月之内,包括闰年,year 的值在 1-32767 之间。

<?php
    echo checkdate(6, 25, 2017);//1
?>

time:获取当前时间戳

获取当前时间戳通过 time() 函数来实现。声明如下:

int time();
<?php
    echo time();//获取当前时间的时间戳
?>

通过 PHP mktime() 创建日期

date() 函数中可选的时间戳参数规定时间戳。

mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。

语法:

mktime(hour,minute,second,month,day,year)

使用 mktime() 函数中的一系列参数来创建日期和时间:

实例:

<?php
    $d=mktime(9, 12, 31, 6, 10, 2015);
    echo "创建日期是:" . date("Y-m-d h:i:sa", $d);
?>

运行结果:

创建日期是:2015-06-10 09:12:31AM

通过 PHP strtotime() 用字符串来创建日期

PHP strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。

语法:

strtotime(time,now)

通过 strtotime() 函数创建日期和时间:

实例:

<?php
    $d=strtotime("10:38pm April 15 2015");
    echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>

PHP 在将字符串转换为日期这方面非常聪明,所以您能够使用各种值:

实例:

<?php
    $d=strtotime("tomorrow");
    echo date("Y-m-d h:i:sa", $d) . "<br>";
    
    $d=strtotime("next Saturday");
    echo date("Y-m-d h:i:sa", $d) . "<br>";
    
    $d=strtotime("+3 Months");
    echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

运行结果:

2019-04-25 12:00:00am 2019-04-27 12:00:00am 2019-07-24 05:53:08pm

不过,strtotime() 并不完美,所以请记得检查放入其中的字符串。

更多日期实例

输出下周六的日期:

实例:

<?php
    $startdate = strtotime("Saturday");
    $enddate = strtotime("+6 weeks",$startdate);
    
    while ($startdate < $enddate) {
      echo date("M d", $startdate),"<br>";
      $startdate = strtotime("+1 week", $startdate);
    }
?>

输出七月四日之前的天数:

实例:

<?php
    $d1=strtotime("December 31");
    $d2=ceil(($d1-time())/60/60/24);
    echo "距离十二月三十一日还有:" . $d2 ." 天。";
?>

网站自动版权年份

使用 date() 函数在您的网站上自动更新版本年份:

实例:

© 2010-<?php echo date("Y")?>

声明:本文由w3h5原创,转载请注明出处:《PHP获取当前时间、年份、月份、日期和天数》 https://www.w3h5.com/post/268.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS小生活

Runloop的再理解(Runloop下)

我们知道,Runloop可以保证线程不退出,那么,为什么Runloop具有此功效呢?那就要从Runloop的定义说起。

6010
来自专栏Python空间

黑客们会用到哪些Python技术?

Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工具)。Python允许开发...

6710
来自专栏编程珠玑

你该知道的C++四种显式类型转换

在C语言中,我们需要做类型转换时,常常就是简单粗暴,在C++中也可以用C式强制类型转换,但是C++有它自己的一套类型转换方式。

6020
来自专栏全栈者

JS中的for循环——你可能不知道的点。

for循环中出现多个异步函数(比如ajax请求,或者node后端执行一些数据库操作或文件操作),如果想要这些异步串行变为同步应该怎么做?

9810
来自专栏cwl_Java

C语言和C++混合开发简单版本计算器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

8930
来自专栏cwl_Java

C++-入门语法(一)

5400
来自专栏小小挖掘机

深度学习在推荐系统中的应用

2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重大新闻,被全球多家媒体大肆报道。AlphaGo之所以取得...

12210
来自专栏FPGA开源工作室

verilog常用语法一让您的FPGA设计更轻松

FPGA 设计的硬件语言Verilog中的参数化有两种关键词:define 和 paramerter,参数化的主要目的是代码易维护、易移植和可读性好。

5510
来自专栏搜狗测试

BLOCK介绍及常见问题

这段时间小编在整理开发代码问题时发现开发同学在使用block时经常出现一些BUG,其中还有一些隐藏的很深的问题,这里小编就为大家介绍一下block的原理,简单用...

7710
来自专栏C语言入门到精通

360道C语言+数据结构(题目+源码)

岁月匆匆转眼即逝,计算机这行真的不像我当年报志愿的时候想的那样上天入地无所不能,给自己的大学打分的话勉强打个75分吧。

14110

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励