加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2023-02-20 10:36:03 所属栏目: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,date('m'),date('d')-1,date('Y'));
 
   $overTime = mktime(0,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,date('d')-date('w')+1,date('y'));
 
  //本周结束时间戳
 
  $overTime = mktime(23,59,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,date('y')));
 
  //本月起始时间时间戳
 
  $startTime =mktime(0,1,date('Y'));  
 
  //本月结束时间时间戳
 
  $overTime =mktime(23,date('t'),date('Y'));
 
  日期格式
 
  使用date( )函数进行时间戳转换日期格式。
 
  //本月起始时间日期格式
 
  $startTime = date("Y-m-d H:i:s",date('Y')));  
 
  //本月结束时间日期格式
 
  $overTime = date("Y-m-d H:i:s",date('Y')));
 
  本季度时间戳和日期
 
  时间戳
 
   //获取当前季度
 
  $season = ceil((date('m'))/3);
 
   //当前季度开始时间戳时间戳
 
  $startTime = mktime(00,00,$season*2+1,date('Y'));
 
   //获取当前季度结束时间戳
 
  $overTime = mktime(23,$season*3,date('t',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",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("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);//转换为时间戳
 
  获取特定时间戳函数
 
  /**特定时间戳函数
 
   * @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;

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读