广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP获取特殊时间戳的方法整理
  • 885
分享到

PHP获取特殊时间戳的方法整理

PHP获取特殊时间戳PHP 特殊时间戳PHP 时间戳 2023-01-10 12:01:03 885人浏览 泡泡鱼
摘要

目录问题描述解决方案今天时间戳与日期时间戳日期格式昨天时间戳与日期日期格式本周时间戳与日期时间戳日期格式本月时间戳和日期时间戳日期格式本季度时间戳和日期时间戳日期格式当前年时间戳和日

问题描述

时间在我们日常的代码编写中会是经常出现的筛选或排序条件,尤其是一些特殊时间节点的时间显得尤为突出,例如昨天,当前日期,当前月份,当前季度,以及当前年份的开始以及结束的时间戳,今天对部分相对简便的方法进行了部分整理。

解决方案

话不多说,稍微进行分类,贴代码。

今天时间戳与日期

时间戳

当前天的时间戳直接使用当前时间格式,指定起始以及结束时间来实现快速拿到时间戳的效果。

 $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);

新想法:根据首先获取当前天日期,然后使用date函数进行时间格式转换

//获取当前日期的天数的数值减一之后就是昨天啦
 $time=date('d')-1;
 $startDate=date("Y-m-".$time." 00:00:00",time());
 $overDate=date("Y-m-".$time." 23:59:59",time());

但是在月初时会出现日期为0的异常,除了进行判断,不知道有没有其他简便的方法可以解决,不然还是时间戳转日期格式比较简便,希望有简单解决办法的大佬给点新想法。

本周时间戳与日期

时间戳

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; //本周最后一天

日期格式

使用日期格式函数转换时间戳,也可以用上面的方法进行date()函数中格式,进行转换。

//本周开始时间戳
$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')); 

日期格式

使用date( )函数进行时间戳转换日期格式。

//本月起始时间日期格式
$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 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"))//日期格式

时间戳转日期格式

$timestamp =1664170375;//当前时间戳
date("Y-m-d H:i:s",$timestamp);//转换为日期格式

日期格式转时间戳

$time = '2022-09-26 23:31:59';//时间格式参数
strtotime($time);//转换为时间戳

获取特定时间戳函数


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;
}

写在最后

小发现:在进行测试的时候发现了 date()函数比较有意思的地方,可以直接拼接结果,当你把y-m-d h:i:s中的一部分写死后仍然是可以执行的,结果就是你写死的数值,后面有机会深入研究下底层代码,好像是在C语言中,结构体来实现日期以及时间戳的格式,传参是进行了判断,所以可以达到不同形式的显示。strtotime() 函数也很巧妙,牛哇牛哇

到此这篇关于PHP获取特殊时间戳的方法整理的文章就介绍到这了,更多相关php获取特殊时间戳内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP获取特殊时间戳的方法整理

本文链接: https://www.lsjlt.com/news/177287.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP获取特殊时间戳的方法整理
    目录问题描述解决方案今天时间戳与日期时间戳日期格式昨天时间戳与日期日期格式本周时间戳与日期时间戳日期格式本月时间戳和日期时间戳日期格式本季度时间戳和日期时间戳日期格式当前年时间戳和日...
    99+
    2023-01-10
    PHP获取特殊时间戳 PHP 特殊时间戳 PHP 时间戳
  • PHP获取今天,昨天,本周,本月,季度,年份等特殊时间戳方法整理
    问题描述 时间在我们日常的代码编写中会是经常出现的筛选或排序条件,尤其是一些特殊时间节点的时间显得尤为突出,例如昨天,当前日期,当前月份,当前季度,以及当前年份的开始以及结束的时间戳,今天对部分相对简...
    99+
    2023-09-04
    php 开发语言
  • python整小时 整天时间戳获取算法
    根据当前时间戳获得整小时时间戳 unit = 3600 start_time = int(time.time())/3600 * 3600 根据当前时间戳获得整天时间戳 unit = 3600*24 start_time = int(ti...
    99+
    2023-01-31
    算法 小时 时间
  • 在PHP中获取一些特殊时间节点的方法
    这篇文章给大家分享的是有关在PHP中获取一些特殊时间节点的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.获取当月第一天及最后一天代码:<php$BeginMonthDate=date('Y-...
    99+
    2023-06-14
  • PHP实现获取毫秒时间戳的方法
    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数。 php的毫秒是没有默...
    99+
    2023-08-30
    php 开发语言
  • C#获取时间戳的方法及时间戳转换问题
    目录一:日期转化成时间戳二:将当前日期的前后指定的天数转换成时间戳三:将指定日期转换成时间戳:如 2022-8-22 22:56:30四:将时间戳转换成日期因为一些原因,原本学Jav...
    99+
    2023-02-06
    C#获取时间戳 C#时间戳转换
  • 关于Java 获取时间戳的方法
    Java有两个取时间戳的方法:System.currentTimeMillis() 和System.nanoTime(),它们的使用场景是有区别的,当前网上一些文章对于这两个方法的性...
    99+
    2022-11-13
  • 学习Golang:获取时间戳的方法
    Golang教程:如何获取时间戳,需要具体代码示例时间戳(timestamp)是指某一时刻相对于某一固定的起始时间点所经过的秒数或毫秒数。在软件开发中,获取时间戳是一项常见的操作,可以用于记录事件发生的顺序、计算时间间隔等等。在Golang...
    99+
    2023-12-29
    Golang 时间戳 获取
  • php获取当前时间戳的方法是什么
    本篇内容主要讲解“php获取当前时间戳的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php获取当前时间戳的方法是什么”吧!php获取当前时间戳的方法:1、直接使用time()函数,语...
    99+
    2023-06-25
  • php获取当前时间戳的方法有哪些
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php获取当前时间戳的方法1、使用time()time() 函数返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。语法...
    99+
    2018-06-19
    php 当前时间戳
  • Python中获取时间戳的几种方法
    Python中获取时间戳的几种方法 时间戳是指从某个特定的时间点(通常是1970年1月1日00:00:00 UTC)到现在的总秒数。在Python中,我们可以使用多种方法获取时间戳。本文将介绍三种常用...
    99+
    2023-09-30
    python 服务器 开发语言
  • ubuntu获取时间戳的方法是什么
    本篇内容介绍了“ubuntu获取时间戳的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!打开终端命令行模式。直接执行“date”命令...
    99+
    2023-07-04
  • php中的时间戳如何获取
    本篇内容介绍了“php中的时间戳如何获取”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为了实现任何时间相关的功能,必须要用到时间戳。在PHP...
    99+
    2023-07-05
  • 使用java怎么获取整点的时间戳
    本篇文章给大家分享的是有关使用java怎么获取整点的时间戳,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We...
    99+
    2023-06-06
  • android-获取网络时间、获取特定时区时间、时间同步的方法
    最近整理出android-获取网络时间、获取特定时区时间、时间同步的方法。具体如下: 方法一: SimpleDateFormat dff = new SimpleDateFo...
    99+
    2022-06-06
    方法 Android
  • javascript获取时间戳的5种方法详解
    js/javascript获取时间戳的5种方法 1.获取时间戳精确到秒,13位 const timestamp = Date.parse(new Date()); console.l...
    99+
    2023-03-19
    js获取时间戳 js时间戳
  • Python 获取今天任意时刻的时间戳的方法
    代码 # -*- coding: utf-8 -*- # Author    : markadc from datetime import datetime, timedelta ...
    99+
    2022-11-11
  • linux获取当前时间戳的方法有哪些
    1. 使用date命令:可以使用date命令获取当前时间的时间戳。具体命令为:date +%s2. 使用time命令:可以使用tim...
    99+
    2023-05-31
    linux获取当前时间 linux
  • 使用java获取时间戳的方法有哪些
    使用java获取时间戳的方法有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、java获取时间戳首先我们先拿上面的例子说起吧。如何获取今天零点以及明天零点的两个时间戳...
    99+
    2023-05-30
    java 时间戳
  • linux获取当前时间戳的方法是什么
    在Linux系统中获取当前时间戳的方法有两种:1. 使用date命令获取当前时间戳可以使用date命令获取当前时间戳。在终端中输入以...
    99+
    2023-05-16
    linux获取当前时间 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作