PHP获取今天,昨天,本周,本月,季度,年份等特殊时间戳方法整理

获取当前时间戳与日期格式时间

time()   //获取当前十位时间戳

msectime() //获取当前十三位时间戳

date('Y-m-d h:m:s') //获取当前日期格式时间

=======

今天时间戳与日期

时间戳

$startTime = strtotime(date('Y-m-d').'00:00:00');

$overTime = strtotime(date('Y-m-d').'23:59:59');

日期格式

$startDate=date('Y-m-d').' 00:00:00';

$overDate=date('Y-m-d').' 00:00:00';

=========

昨天时间戳与日期

时间戳

$startTime = mktime(0,0,0,date('m'),date('d')-1,date('Y'));

$overTime = mktime(0,0,0,date('m'),date('d'),date('Y'))-1;

日期格式

$startDate=date("Y-m-d H:i:s",$startTime);

$overDate =date("Y-m-d H:i:s",$overTime);

$time=date('d')-1;

$startDate=date("Y-m-".$time." 00:00:00",time());

$overDate=date("Y-m-".$time." 23:59:59",time());

===========

本周时间戳与日期

时间戳

date( )函数中 date(‘w’) 可以获取今天是本周第几天,通过简单处理就可以得到本周的起始以及结束时间。

这种思路和方法可以推广到上周的起始和结束时间。

方法一

//本周开始时间戳

$startTime = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));

//本周结束时间戳

$overTime = mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y'));

方法二

$nowDate = date("Y-m-d");

$week = date('w',strtotime($nowDate));

$startTime = strtotime("$nowDate -".($week ? $week - 1 : 6).' days');//本周第一天

$overTime = $start_time + 86400*7 -1; //本周最后一天

日期格式

//本周开始时间戳

$startTime = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y')));

//本周结束时间戳

$overTime = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y')));

===============

本月时间戳和日期

时间戳

//本月起始时间时间戳

$startTime =mktime(0,0,0,date('m'),1,date('Y'));  

//本月结束时间时间戳

$overTime =mktime(23,59,59,date('m'),date('t'),date('Y')); 

//本月起始时间日期格式

$startTime = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),1,date('Y')));  

//本月结束时间日期格式

$overTime = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('t'),date('Y')));

本季度时间戳和日期

时间戳

 //获取当前季度

$season = ceil((date('m'))/3);

 //当前季度开始时间戳

$startTime = mktime(00,00,00,$season*2+1,1,date('Y'));

 //获取当前季度结束时间戳

$overTime = mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'));

date("Y-m-d",$startTime)

date("Y-m-d",$overTime)

当前年时间戳和日期

时间戳

//本年开始  

$startTime  = strtotime(date("Y",time())."-1"."-1"); 

//本年结束

$overTime  = strtotime(date("Y",time())."-12"."-31");

日期格式

//本年开始  

$startTime  = date("Y-m-d H:i:s",strtotime(date("Y",time())."-1"."-1"));

//本年结束

$overTime  =  date("Y-m-d H:i:s",strtotime(date("Y",time())."-12"."-31"))

strtotime函数获取描述对应时间

明天当前时间

strtotime("+1 day")//时间戳

date("Y-m-d H:i:s",strtotime("+1 day"))//日期格式

明天当前时间

strtotime("+1 day")//时间戳

date("Y-m-d H:i:s",strtotime("+1 day"))//日期格式

昨天当前时间

strtotime("-1 day")//时间戳

date("Y-m-d H:i:s",strtotime("-1 day"))//日期格式

下个星期当前时间

strtotime("+1 week")//时间戳

date("Y-m-d H:i:s",strtotime("+1 week"))//日期格式

上个星期当前时间

strtotime("-1 week")//时间戳

date("Y-m-d H:i:s",strtotime("-1 week"))//日期格式

下星期几当前时间

strtotime("next Thursday")//时间戳

date("Y-m-d H:i:s",strtotime("next Thursday"))//日期格式

上星期几当前时间

strtotime("last Thursday")//时间戳

date("Y-m-d H:i:s",strtotime("last Thursday"))//日期格式

/**特定时间戳函数

 * @param $targetTime

 */

function gettimestamp($targetTime){

    switch ($targetTime){

        case 'today'://今天

            $timeamp['start'] = strtotime(date('Y-m-d'));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

            break;

        case 'yesterday'://昨天

            $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 day')));

            $timeamp['over'] = strtotime(date('Y-m-d'));

            break;

        case 'beforyesterday'://前天

            $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 day')));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 day')));

            break;

        case 'beforweek'://本周

            $timeamp['start'] = strtotime(date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))));

            $timeamp['over'] = strtotime(date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))));

            break;

        case 'nowmonth'://本月

            $timeamp['start'] = strtotime(date('Y-m-01'));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

            break;

        case 'permonth'://上月

            $timeamp['start'] = strtotime(date('Y-m-01',strtotime('-1 month')));

            $timeamp['over'] = strtotime(date('Y-m-01'));

            break;

        case 'preweek'://上周 注意我们是从周一开始算

            $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 week Monday')));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 week Monday +1 day')));

            break;

        case 'nowweek'://本周

            $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 week Monday')));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

            break;

        case 'preday'://30

            $timeamp['start'] = strtotime(date('Y-m-d'),strtotime($param.' day'));

            $timeamp['end'] = strtotime(date('Y-m-d'));

            break;

        case 'nextday'://30

            $timeamp['start'] = strtotime(date('Y-m-d'));

            $timeamp['over'] = strtotime(date('Y-m-d'),strtotime($param.' day'));

            break;

        case 'preyear'://去年

            $timeamp['start'] = strtotime(date('Y-01-01',strtotime('-1 year')));

            $timeamp['over'] = strtotime(date('Y-12-31',strtotime('-1 year')));

            break;

        case 'nowyear'://今年

            $timeamp['start'] = strtotime(date('Y-01-01'));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

            break;

        case 'quarter'://季度

            $quarter = ceil((date('m'))/3);

            $timeamp['start'] = mktime(0, 0, 0,$quarter*3-2,1,date('Y'));

            $timeamp['over'] = mktime(0, 0, 0,$quarter*3+1,1,date('Y'));

            break;

        default:

            $timeamp['start'] = strtotime(date('Y-m-d'));

            $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

            break;

    }

    return $timeamp;

}

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

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

相关文章

【MATLAB】PSO粒子群优化LSTM(PSO_LSTM)的时间序列预测

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 PSO粒子群优化LSTM(PSO-LSTM)是一种将粒子群优化算法(PSO)与长短期记忆神经网络(LSTM)相结合的混合模型。该算法通过…

什么是 JavaScript 中的 WeakMap

在 JavaScript 中,WeakMap 是一种特殊的 Map 数据结构,它允许将对象作为键,而且键值对是弱引用的关系。 与 Map 不同的是,WeakMap 的键只能是对象,不能是其他类型的值。同时,当键对象没有任何引用时&#…

一篇文章掌握SpringCloud与SpringCloud Alibaba的区别

目录 一、SpringCloud组件的升级与替换 二、服务注册中心的比较 1、根据CAP理论对注册中心进行分类 2、Zookeeper通过Zab协议保证强一致性 3、Eureka保证高可用性 4、Nacos既支持AP模式又支持CP模式 三、服务调用框架的比较 1、Ribbon 2、OpenFeign 3、Dubbo 四、服…

设计模式之初始设计模式和UML图

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

SSH远程登陆服务器

截取自文章:SSH简介及两种远程登录的方法_ssh -CSDN博客 SSH的安装 SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。 dpkg -l | grep ssh 如果只是想远程登陆别的机器只需要安装客户端&…

web播放rtsp流视频,使用webrtc毫秒级延迟

目录 一、zlmediakit环境搭建和编译 1)、下载zlmediakit 2)、安装依赖 3)、编译webrtc 4)、启动zlmediakit 二、播放webrtc视频 1)、动态添加拉流代理 2)、播放视频 三、嵌入到自己的vue项目中。 1)、拷贝demo到自己的vue项目中 2)、mkcert生成证书 背景&#xff1…

shell shell脚本编写常用命令 语法 shell 脚本工具推荐

shell 脚本 计算机语言 Shebang 定义解释器 主要定义,您的脚本是用什么语言写的 #!/usr/bin/python //定义这是一个python语言#!/bin/bash //定义这是一个shell语言 echo SHELL我们执行的 linux 命令的时候,其实是使用 /bin/bash 这个二进制文…

鸿蒙应用开发 应用内字体大小调节

1 数据管理概述 在移动互联网蓬勃发展的今天,移动应用给我们生活带来了极大的便利,这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置,HarmonyOS 应用开发也不例外。 本文将为您介绍 HarmonyOS 提供的数据…

stm32 HAL库 4096线ABZ编码器

[TOC]目录 ABZ编码器 4096线 买的是这个 AB相代表计数方向,Z代表过零点 cubemx配置 定时器Encoder 也可以选上DMA 中断 Z相GPIO中断 找一个空闲管脚 打开对应中断 代码 不用DMA int main(void) {short Enc_cnt 0;HAL_TIM_Encoder_Start_IT(&ht…

DrGraph原理示教 - OpenCV 4 功能 - 单通道图

通道 OpenCV的核心处理对象是Mat,大体是一个二维数组,加上了各种功能函数。 很多的图像处理,会在单通道或二值化的基础上进行,比如连通域、目标识别等。这里的通道就是channels。 不同的图像处理算法可能对通道数有特定的要求。例…

HTML5+CSS3+JS小实例:过年3D烟花秀

实例:过年3D烟花秀 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><…

前端需要学GraphQL 吗?

什么是GraphQL&#xff1f; GraphQL 是 Facebook 开发的一个数据查询语言&#xff0c;可以让前端开发者更具体地指定他们需要什么数据&#xff0c;从而使数据获取更加高效。GraphQL 是一种数据查询和操作语言&#xff0c;它主要被设计用来作为 API 的请求语言。与传统的 RESTf…

#前后端分离# 头条发布系统

头条业务简介 用户功能 注册功能登录功能jwt实现 新闻 新闻的分页浏览通过标题关键字搜索新闻查看新闻详情新闻的修改和删除 预览界面 开源上线 https://gitcode.net/NVG_Haru/NodeJS_5161447 数据库设计 数据库脚本 CREATE DATABASE sm_db;USE sm_db;SET NAMES utf8mb4…

半导体行业-SECS/GEM协议 JAVA与SECS/GEM通信 什么是配方?springboot集成SECS通信协议 配方管理S7FX

Java与SECS基础通信 Java实现SECS指令S2F17获取时间 Java实现SECS指令 S10F3 终端单个显示例子 Java实现SECS指令 S7FX配方管理 Java实现SECS指令 S5F1报警/取消报警上传 实例源码及DEMO请查阅 JAVA开发SECS快速入门资料&#xff0c;SECS S7F19 什么是半导体配方&…

C++ enum class 如何使用

enum class 是 C11 引入的一种新的枚举类型&#xff0c;它是对传统 C 风格的枚举的一种改进。enum class 提供了更强大的类型安全性和作用域限定。以下是关于 enum class 的详细介绍和用法说明&#xff1a; 1. 基本语法 enum class EnumName {Enumerator1,Enumerator2,// ...…

知识笔记(六十五)———css+js实现鼠标移动边框高亮效果

前言&#xff1a;效果是鼠标移入空白区域&#xff0c;边框高亮的效果。效果是在douyin的渡一教育袁老师的课程学习到的&#xff0c;观看以后是一个实用的小特效。想看的可以平台查询&#xff0c;自己也学到了知识。 <!DOCTYPE html> <html lang"en"> &l…

初识javaWeb

一、JavaWeb是什么&#xff1f; 1、概念 javaWeb指的是使用java语言进行互联网领域项目开发的技术栈——进行web项目开发所需的技术的集合。 -Web前端——在浏览器中用户可以看到的网页 -Web后端——为前端提供数据的程序 2、Web项目 java语言是可以进行多种类型的项目开发&a…

网大为卸任腾讯CXO;Midjourney 1 月训练视频模型;2023年马斯克赚了7700亿

投融资 • 2023 年大型科技公司在生成式 AI 初创企业上的投资远超风险投资集团• 恒信东方与无锡政府合作成立布局 MR/XR 技术及 3D 数字资产 AIGC 产业投资基金• 新公司法完善注册资本认缴登记制度• 网大为卸任腾讯CXO&#xff0c;曾促成南非MIH的投资• 宁波蔚孚科技完成数…

【VS】NETSDK1045 当前 .NET SDK 不支持将 .NET 6.0 设置为目标。

问题描述 报错 NETSDK1045 严重性代码说明项目文件行禁止显示状态错误NETSDK1045当前 .NET SDK 不支持将 .NET 6.0 设置为目标。请将 .NET 5.0 或更低版本设置为目标&#xff0c;或使用支持 .NET 6.0 的 .NET SDK 版本。RCSoftDrawMicrosoft.NET.TargetFrameworkInference.ta…