-
PHP时间类完整代码实例
开发中,经常用到时间的一些例子,比如昨天,今天,前天,近七天,一周等等,这里整理了一个时间的完整类实例,直接实例化,有需要的可以看看。
以下直接代码:
- <?php
- header("Content-type:text/html;Charset=utf-8");
- class time{
- private $year;//年
- private $month;//月
- private $day;//天
- private $hour;//小时
- private $minute;//分钟
- private $second;//秒
- private $microtime;//毫秒
- private $weekday;//星期
- private $longDate;//完整的时间格式
- private $diffTime;//两个时间的差值
- //返回年份 time:时间格式为时间 2018-8-21
- function getyear($time="",$type=""){
- if($time==""){
- $time=time();
- }
- if($type==1){
- return $this->year=date("y",$time); //返回两位的年份 18
- }else{
- return $this->year=date("Y",$time); //返回四位的年份 2018
- }
- }
- //返回当前时间的月份 time:时间格式为时间 2018-8-21
- function getmonth($time="",$type=""){
- if($time==""){
- $time=time();
- }
- switch($type){
- case 1:$this->month=date("n",$time);//返回格式 8
- break;
- case 2:$this->month=date("m",$time);//返回格式 08
- break;
- case 3:$this->month=date("M",$time);//返回格式 Aug
- break;
- case 4:$this->month=date("F",$time);//返回格式 August
- break;
- default:$this->month=date("n",$time);
- }
- return $this->month;
- }
- //返回当前时间的天数 time:时间格式为时间 2018-8-21
- function getday($time="",$type=""){
- if($time==""){
- $time=time();
- }
- if($type==1){
- $this->day=date("d",$time);//返回格式 21
- }else{
- $this->day=date("j",$time);//返回格式 21
- }
- return $this->day;
- }
- //返回当前时间的小时 2018-08-21 1:19:21 20:19:21
- function gethour($time="",$type=""){
- if($time==""){
- $time=time();
- }
- switch($type){
- case 1:$this->hour=date("H",$time);//格式: 1 20
- break;
- case 2:$this->hour=date("h",$time);//格式 01 08
- break;
- case 3:$this->hour=date("G",$time);//格式 1 20
- break;
- case 4:$this->hour=date("g",$time);//格式 1 8
- break;
- default :$this->hour=date("H",$time);
- }
- return $this->hour;
- }
- //返回当前时间的分钟数 1:9:18
- function getminute($time="",$type=""){
- if($time==""){
- $time=time();
- }
- $this->minute=date("i",$time); //格式 09
- return $this->minute;
- }
- //返回当前时间的秒数 20:19:01
- function getsecond($time="",$type=""){
- if($time==""){
- $time=time();
- }
- $this->second=date("s",$time); //格式 01
- return $this->second;
- }
- //返回当前时间的星期数
- function getweekday($time="",$type=""){
- if($time==""){
- $time=time();
- }
- if($type==1){
- $this->weekday=date("D",$time);//格式 Sun
- }else if($type==2){
- $this->weekday=date("l",$time); //格式 Sunday
- }else{
- $this->weekday=date("w",$time);//格式 数字表示 0--6
- }
- return $this->weekday;
- }
- //比较两个时间的大小 格式 2018-8-21 8:4:3
- function compare($time1,$time2){
- $time1=strtotime($time1);
- $time2=strtotime($time2);
- if($time1>=$time2){ //第一个时间大于等于第二个时间 返回1 否则返回0
- return 1;
- }else{
- return -1;
- }
- }
- //比较两个时间的差值
- function diffdate($time1="",$time2=""){
- //echo $time1.'------'.$time2.'<br>';
- if($time1==""){
- $time1=date("Y-m-d H:i:s");
- }
- if($time2==""){
- $time2=date("Y-m-d H:i:s");
- }
- $date1=strtotime($time1);
- $date2=strtotime($time2);
- if($date1>$date2){
- $diff=$date1-$date2;
- }else{
- $diff=$date2-$date1;
- }
- if($diff>=0){
- $day=floor($diff/86400);
- $hour=floor(($diff%86400)/3600);
- $minute=floor(($diff%3600)/60);
- $second=floor(($diff%60));
- $this->diffTime='相差'.$day.'天'.$hour.'小时'.$minute.'分钟'.$second.'秒';
- }
- return $this->diffTime;
- }
- //返回 X年X月X日
- function buildDate($time="",$type=""){
- if($type==1){
- $this->longDate = $this->getyear($time) . '年' . $this->getmonth($time) . '月' . $this->getday($time) . '日';
- }else{
- $this->longDate = $this->getyear($time) . '年' . $this->getmonth($time) . '月' . $this->getday($time) . '日'.$this->gethour($time).':'.$this->getminute($time).':'.$this->getsecond($time);
- }
- return $this->longDate;
- }
- }
- ?>
实例化一个对象
- <?php
- $time_var = "2018-08-21";
- $obj = new time();
- $year = $obj->getyear($time_var);
- echo($year);
- ?>
以上其他的方法也可以按照上面那个例子,输出你想要得到的日期,在开发过程中,可以直接放入在扩展库里,直接引用!
出处:http://www.phpfensi.com/php/20220413/20443.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式