zoukankan      html  css  js  c++  java
  • php关于日期时间 php日期 php时间

    strtotime 的牛逼用法:

    $a='-4 days '.date('Y-m-d');
    $day = date('Y-m-d', strtotime($a));
    var_dump($day);

              /**
    	 * @name 网页监测日数据处理
    	 * @param string $startTime 查询开始时间
    	 * @param string $endTime   查询结束时间
    	 * @param Array  $reportData 查询结果数组
    	 * @return Array(Map)   
    	 */
    	private function parsePageRepoetData($startTime, $endTime,/*Array*/$reportData)
    	{
    		$newData = array ();
    		foreach ($reportData as $v) {
    			$newData[$v['gather_date']] = $v;
    		}
    		//获取时间间隔
    		$day_mac = ceil((strtotime($endTime) - strtotime($startTime)) / 3600 / 24);
    		$dateArray = array ();
    		$pvArray = array ();
    		$uvArray = array ();
    
    		for($i = $day_mac; $i >= 0; $i --) {
    			$day = date('Y-m-d', strtotime(- $i . ' days ' . $endTime));
    			if (isset($newData[$day])) {
    				$dateArray[] = trim($newData[$day]['gather_date']);
    				$pvArray[] = (int) $newData[$day]['pv_count'];
    				$uvArray[] = (int) $newData[$day]['uv_count'];
    			} else {
    				$dateArray[] = $day;
    				$pvArray[] = 0;
    				$uvArray[] = 0;
    			}
    		}
    		if($dateArray){
    			foreach ($dateArray as $key=>&$val){
    				$val = date('m-d', strtotime($val));
    			}
    		}
    		$data['date'] = $dateArray;
    		$data['pvCount'] = $pvArray;
    		$data['uvCount'] = $uvArray;
    
    		return $data;
    	}
    

    php获取时间是件很容易的事情,下面小编就过来简单的分享一下个人所学php的一些经验吧;

    操作方法

    1、获取当前时间方法date()

    很简单,这就是获取时间的方法,格式为:date($format, $timestamp),format为格式、timestamp为时间戳--可填参数。
    2、获取时间戳方法time()、strtotime()
    这两个方法,都可以获取php中unix时间戳,time()为直接获取得到,strtotime($time, $now)为将时间格式转为时间戳,$time为必填。清楚了这个,想了解更多,请继续往下看。

    3、 date($format)用法
    比如:
    echo date('Y-m-d') ,输出结果:2012-03-22
    echo  date('Y-m-d H:i:s'),输出结果:2012-03-22 23:00:00
    echo  date('Y-m-d', time()),输出结果:2012-03-22 23:00:00(结果同上,只是多了一个时间戳参数)(时间戳转换为日期格式的方法)
    echo  date('Y').'年'.date('m').'月'.date('d').'日',输出结果:2012年3月22日

    PHP设置日期默认值以及验证:  
         const DEFAULT_SEARCH_DAY = 7;    //默认查询天数     
         const MAX_SEARCH_DAY     = 30;   //最大查询天数
    
        $startTime    = $this->getParam('startTime');
         $endTime      = $this->getParam('endTime');
         if(!$startTime && !$endTime){
    	   $endTime    = date('Y-m-d',strtotime('-1 days'));
    	   $startTime  = date('Y-m-d',strtotime('-'.self::DEFAULT_SEARCH_DAY.' days'));
          }
          if (! $startTime || ! $endTime || $endTime < $startTime){
    	      printJson(null, 1, '请传递正确的时间参数!');
          }
          if((strtotime($endTime) - strtotime($startTime))/60/60/24 >       self::MAX_SEARCH_DAY){
    	      printJson(null, 1, '开始日期和结束日期最多只能相差'.self::MAX_SEARCH_DAY.'天!');
          }
    

    //计算自动星期几和日期
    $startDate  = null;
    $endDate    = date('Y-m-d');
    $substruct  = 0; //要相减的天数
    $week       = date('N'); //获取今天是星期几

    switch ($week) {
     case 1:
      $substruct = 3;
      break;
     case 3:
      $substruct = 2;
      break;
     case 5:
      $substruct = 1;
      break;
     default:
    }
    $startDateStr ='-'.$substruct.' days '.date('Y-m-d');
    $startDate    = date('Y-m-d', strtotime($startDateStr));
    var_dump($startDate,$endDate,$substruct); exit();

    PHP获取今天、昨天、明天的日期

      1. echo "今天:".date("Y-m-d")."<br>";       
      2. echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>";       
      3. echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>";    
      4. echo "一周后:".date("Y-m-d",strtotime("+1 week")). "<br>";       
      5. echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")). "<br>";       
      6. echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")). "<br>";       
      7. echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>";       
      8. echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>";       
      9. echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>";       
      10. echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>";    

    php判断某日期是哪一年的第几周

    在判断某一天是哪一年的第几周的时候,根据采用的国际标准(忘了叫什么名字了),年首或者年末的那几天有可能不属于今年的第一周或者最后一周。
    上代码:
    <?php
    echo date("YW",strtotime("20141229"))."/n";
    echo date("YW",strtotime('20160101'))."/n";
    ?>
    ----------输出----------
    201401
    201653

    明白问题所在了么?
    自己曾经写过一段代码来解决这个问题,直到后来发现把Y换成o,问题就解决了
    <?php
    echo date("oW",strtotime("20141229"))."/n";
    echo date("oW",strtotime('20160101'))."/n";
    ?>
    ----------输出----------
    201501

    201553

     php获取本周开始日期和结束日期的方法

    代码如下:

    //当前日期

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

    //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期

    $first=1;

    //获取当前周的第几天 周日是 0 周一到周六是 1 - 6

    $w=date('w',strtotime($sdefaultDate));

    //获取本周开始日期,如果$w是0,则表示周日,减去 6 天

    $week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'));

    //本周结束日期

    $week_end=date('Y-m-d',strtotime("$week_start +6 days"));

  • 相关阅读:
    NodeJS Stream 五:双工流
    NodeJS Stream 四:Writable
    NodeJS Stream 三:readable
    NodeJS Stream 二:什么是 Stream
    NodeJS stream 一:Buffer
    JavaScript 精粹
    详解k8s中的liveness和readiness的原理和区别_转
    通过 GoLang 全面了解 HTTPS_转自知乎-腾讯技术
    golang之vim和vscode开发环境
    go命令工具补遗
  • 原文地址:https://www.cnblogs.com/andydao/p/3277810.html
Copyright © 2011-2022 走看看