php日期相减函数,倒计时函数_计算两个时间相差值_PHP函数

**PHP倒计时函数、求两个日期时间之间相差的时间函数、计算时差函数_PHP函数笔记**

```php

/**

* 求两个日期时间之间相差的时间

* (针对1970年1月1日之后,求之前可以采用泰勒公式)

* @param string $day1 2016-10-01 10:01:08

* @param string $day2 2020-10-01 10:01:08

* @return list

*/

function diffBetweenTwoDate($start_time, $end_time){

$start = strtotime($start_time);

$stop = strtotime($end_time);

if($start < $stop){

$total_days = ($stop-$start) / 86400;

$result['total_days'] = intval($total_days);

$result['year'] = 0;

$result['month'] = 0;

if($total_days < 7){//如果小于7天直接返回天数

$result['day'] = intval($total_days);

}elseif($total_days <= 31){//小于28天则返回周数,由于闰年2月满足了

if($stop == strtotime($start_time.'+1 month')){

$result['month'] = 1;

}else{

//$w = floor($total_days / 7);

//$d = ($stop - strtotime($start_time.'+'.$w.' week')) / 86400;

//$result['week'] = $w;

//$result['day'] = intval($d);

$result['day'] = intval($total_days);

}

}else{

$y= floor($total_days / 365);

if($y >= 1){//如果超过一年

$start = strtotime($start_time.'+'.$y.'year');

$start_time = date('Y-m-d',$start);

//判断是否真的已经有了一年了,如果没有的话就开减

if($start>$stop){

$start_time = date('Y-m-d',strtotime($start_time.'-1 month'));

$m = 11;

$y--;

}

$total_days = ($stop - strtotime($start_time)) / 86400;

}

if(isset($m)){

$w = floor($total_days / 7);

$d = $total_days-$w * 7;

}else{

$m = isset($m) ? $m : round($total_days / 30);

$stop >= strtotime($start_time.'+'.$m.'month') ? $m : $m--;

if($stop >= strtotime($start_time.'+'.$m.'month')){

$d = $w = ($stop-strtotime($start_time.'+'.$m.'month')) / 86400;

//$w = floor($w / 7);

//$d = $d - $w * 7;

}

}

$result['year'] = $y;

$result['month'] = $m;

//$result['week'] = $w;

$result['day'] = intval(isset($d) ? $d : 0);

}

$result['hours'] = intval((($stop - $start) % 86400) / 3600);

$result['min'] = intval(((($stop - $start) % 86400) % 3600) / 60);

$result['sec'] = ((($stop - $start) % 86400) % 3600) % 60;

}else{

$result['total_days'] = 0;

$result['year'] = 0;

$result['month'] = 0;

$result['day'] = 0;

$result['hours'] = 0;

$result['min'] = 0;

$result['sec'] = 0;

}

//return array_filter($result);

return $result;

}

```

返回字段**年、月、日、时、分、秒**

最后更新于 2019-07-20 16:39:20 并被添加「倒计时 php函数笔记」标签,已有 14971 位童鞋阅读过。

本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处

相关文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq上传file到php,jQuery文件上传

插件描述&#xff1a;这是一个文件上传的展示&#xff0c;看很多插件&#xff0c;并不满意就自己写了一个&#xff0c;可能兼容性不是很好&#xff0c;没有准确进行测试过&#xff0c;还请各位不吝赐教更新时间&#xff1a;2019/3/25 下午8:53:17更新说明&#xff1a;修复上传成…

oracle导出建表主键,oracle主键自动生成 配合hibernate的生成策略详解

hibernate配合oracle自动生成主键策略有两种方法&#xff1a;A)设置ID的增长策略是sequence&#xff0c;同时指定sequence的名字&#xff0c;最好每个表建一个sequence&#xff0c;此种做法就如同MS-SQL,MY-SQL中的自动增长一样&#xff0c;不需要创建触发器&#xff0c;具体的…

oracle找到表的位置,查看Oracle表中的指定记录在数据文件中的位置

查看Oracle表中的指定记录位置select rowid,user_id from sshr.xx_user where user_id3010586select rowid,dbms_rowid.rowid_object(rowid) object_id,dbms_rowid.rowid_relative_fno(rowid) file_id,dbms_rowid.rowid_block_number(rowid) block_id,dbms_rowid.rowid_row_num…

oracle异常抛出,ORACLE 存储过程异常捕获并抛出

for tab_name in tables loopexecute immediate drop table ||tab_name; --此处可能会报错end loop;当前情况是&#xff0c;循环表&#xff0c;进行删除&#xff0c;如果出现表不存在&#xff0c;则会异常中断&#xff0c;导致整个存储过程挂掉&#xff0c;需求是要能跳过错误的…

oracle的主目录怎么删除,删除oracle数据库卸载

oracle 10g在win上卸载软件环境1 、Windows XPOracle 10g2、 Oracle安装路径为 d:\Oracle实现方法1 、开始—设置—控制面板—管理工具—服务停止所有 Oracle服务;Or acleUfiCQiisoXeorcl 名称 I细I好I启动类型I aat为ffetwork Frov-isi. 「, 巴SOrae le StrTice…

oracle数据库相关知识,Oracle数据库相关知识点复习

一.Oracle数据库中常用的数据类型varchar2(长度)可变长字符串char(长度)定长number()表示整数或者浮点数number(8) number(8,2)clog字符的大对象blog二进制的大对象二.数据库查询1)SELECT语句从表中提取查询数据.语法为SELECT [DISTINCT] {column1,column2,…} FROM tablename …

Linux中批量创建空白文件,在Linux中批量创建和修改文件或目录

1. 用一条命令直接创建[fredRoyalmile Auto_Ops]$ touch seq 10[fredRoyalmile Auto_Ops]$ ls1 10 2 3 4 5 6 7 8 9[fredRoyalmile Auto_Ops]$ touch linux-{A..G}[fredRoyalmile Auto_Ops]$ lslinux-A linux-B linux-C linux-D linux-E linux-F linux-G[fredRo…

linux查看cpu占用最多的进程,Linux下查看占用CPU资源最多的几个进程

BPM SharePoint解决方案分享一.需求分析 SharePoint作为微软推出的协同类平台产品,为客户提供了门户.内容.文档.流程.社区.搜索.BI等一系列的解决方案,然而其流程功能由于设计理念差异,不能完全满足客户的需求,主要原因 ...nodejs字符与字节之间的转换new Buffer("Hello W…

linux内核 sin头文件,Linux内核中中断request_irq详解--中断共享问题解决

。函数原型如下&#xff1a;2.4 内核int request_irq (unsignedintirq,void (*handler)(int,void*,structpt_regs*),unsignedlongfrags,constchar*device,void*dev_id);2.6 内核request_irq(unsignedintirq,irq_handler_thandler,unsignedlongflags,constchar*name,void*dev);参…

linux缓存文件用户权限错误,Laravel运行缓存权限问题

Laravel 开发中遇到权限问题 failed to open stream: Permission denied错误现象&#xff1a;messg:"file_put_contents(.../storage/framework/cache/data/03/8c/03xxxxxx):failed to open stream: Permission denied"status: 500经过搜索发现网络上大量的解决方案是…

linux误删表空间文件,UNDO表空间下的数据文件被误删除后的处理方法

UNDO表空间下的数据文件被误删除后的处理方法&#xff1a;操作前备份数据库&#xff0c;以避免更大的损失。思路&#xff1a;1、把误删除的数据文件offline2、正常打开数据库后创建新的UNDO表空间及数据文件3、修改相应参数指向新的UNDO表空间4、重新启动数据库验证5、删除旧的…

linux内核有ebpf吗,聊聊很重要的内核技术eBPF

在2018年的 Linux Plumber 大会上&#xff0c;eBPF成了亮点&#xff0c;有24个议题提到了 eBPF&#xff0c;可以预计eBPF会成为一大技术热点。eBPF(Extended Berkeley Packet Filter) 的核心是驻留在 kernel 的高效虚拟机。最初的目的是高效网络过滤框架&#xff0c;前身是 BPF…

linux 访问日志ip排序,Linux通过日志文件统计IP访问次数排序

假设我的日志文件内容如下&#xff1a;218.92.217.53 - - [22/Nov/2017:17:26:27 0800] "GET /images/rand HTTP/1.0" 200 1785 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC…

Linux系统自动备份脚本,供参考的Linux系统中自动执行分段备份脚本

供参考的Linux系统中自动执行分段备份脚本发布时间:2014-04-21 15:49:00来源:红联作者:tioced以下脚本仅做学习参考&#xff0c;需加到/etc/crontab文件&#xff0c;每天执行一次的脚本自动执行分段备份/www/users下的网页文件夹。[code]#!/usr/bin/perl$all_day date;chdir &…

linux+last命令菜鸟,Linux基本命令。。。菜鸟保留

以下命令都是以root身份输入的1.从图形界面进入问文本界面&#xff1a;init 32.从文本界面进入图形界面&#xff1a;startx3.从普通用户进入root用户&#xff1a;su4.进入文件夹&#xff1a;cd /文件路径5.返回上一个文件夹&#xff1a;cd ..6.查看当前位置的文件以及文件夹&am…

嵌入式linux tftp rpm,嵌入式linux的tftp配置

tftp是用来下载远程文件的最简单网络协议&#xff0c;它其于UDP协议而实现。嵌入式linux的 tftp开发环境包括两个方面&#xff1a;一是linux服务器端的tftp-server支持&#xff0c;二是嵌入式目标系统的tftp-client支持。因为u- boot本身内置支持tftp-client&#xff0c;所以嵌…

oom linux 导致ssh,Linux OOM

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;某个机器看到一条日志:Out of Memory: Kill process xxx (xxx) score 707 or sacrifice child并且syslog, ssh等进程都被kill掉了.简单了解了下OOM(Out of Memory)…

linux c 禁止对外通信,Linux C套接字:在recv调用时被阻止

在我的应用程序中,我为简单的http服务器创建了一个线程,然后从我的应用程序中尝试连接到http服务器,但是在recv调用中控件被阻止/挂起.但是,如果尝试使用linux GET命令连接到应用程序的http服务器,则我将成功连接到http服务器.据我对谷歌搜索的了解,我发现这不是正确的方法.但是…

linux 深度v15,[转载]深度Linux发布 V15.9

新增的功能多种手势&#xff0c;轻触即发&#xff0c;针对支持触摸屏设备&#xff0c;支持单击、双击、唤出右键菜单、上下滑动等多种触摸屏手势。搭配屏幕键盘&#xff0c;让您随心所欲&#xff0c;手指点到即得到。随机应变&#xff0c;识变从宜&#xff0c;推出智能镜像源概…

linux arch 包管理,Archlinux使用包管理方式安装MyEclipse

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼PKGBUILD:# Maintainer: alex-no1 # Contributor: alex-no1 pkgnamemyeclipse_realnameeclipsepkgver11.0.1_internal_pkgver3.8.2pkgrel1_date201301310800pkgdesc"An IDE for Java and other languages - 3.8 - simultaneou…