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

php关于日期时间 php日期 php时间的更多相关文章

  1. PHP之时间和日期函数

    // 时间日期函数 Time <?php date_default_timezone_set('UTC'); // 获取当前时间的时间戳 $time0 = mktime(); $time1 = ...

  2. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  3. Lua库之时间和日期操作

    Lua库之时间和日期操作 (2010-02-07 18:41:20) 转载▼ os.time() <== 返回当前系统的日历时间os.date() <== 返回本地化的时间字符串,这里是& ...

  4. date 显示或设置系统时间和日期

    显示或设置系统时间和日期 date [options] [+format] date [options] [new date] date用来显示系统的时间和日期,超级用户可以使用date来更改系统时钟 ...

  5. java时间和日期类型

    在java中,代表时间和日期的类型包括:java.util.Date和java.util.Calendar,此外,在JDBC API中还提供了3个扩展类,java.UtilDate类的子类:java. ...

  6. iOS中的时间和日期

    怎么说?时间和日期不是了不起的属性.了不起的功能,但是,我们决不能够因此就“冷落”它. 一:怎么“搞到货”--如何获取时间.日期 //-=-==当前时间------默认显示“0时区”时间 NSDate ...

  7. Python 时间和日期模块的常用例子

    获取当前时间的两种方法 import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now = ...

  8. Java 对时间和日期的相关处理

    1. 获取当前系统时间和日期并格式化输出 import java.util.Date; import java.text.SimpleDateFormat; public class NowStrin ...

  9. PHP date 格式化一个本地时间/日期

    PHP date 格式化一个本地时间/日期 date (PHP 4, PHP 5) date — 格式化一个本地时间/日期 说明 string date ( string $format [, int ...

  10. java JDK8 学习笔记——第13章 时间与日期

    第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...

随机推荐

  1. 【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号

    原文网址:http://www.cnblogs.com/xiaozhang2014/p/4109856.html 最近初学android,版本是22.6.0的话,每次创建一个项目就会出现一个appco ...

  2. (四)学习JavaScript之className属性

    参考:http://www.w3school.com.cn/jsref/prop_classname.asp HTML DOM Anchor 对象 定义和用法 className 属性设置或返回元素的 ...

  3. Could not locate executable null 解决办法

    问题导读: 1.建一个MapReduce Project,运行时发现出问题:Could not locate executable null,该如何解决?2.Could not locate exec ...

  4. Python脚本控制的WebDriver 常用操作 <二十三> wait

    测试用例场景 Wait类的使用场景是在页面上进行某些操作,然后页面上就会出现或隐藏一些元素,此时使用Wait类的until方法来等待这些效果完成以便进行后续的操作.另外页面加载时有可能会执行一些aja ...

  5. 备份 VPS 上得内容到国内

    起源: 最近毕设快开题了,校园网进入了收费测试的阶段,得把车辆的数据库 down 下来.发现国内 down 的速度真心慢呢.于是乎使用了在美国的 VPS 来 down,果不其然,30M 左右的下载速度 ...

  6. MSP430开学的序章

    吐槽一下最近在搞什么~~~,星期三在等板子来,自己的板子,激动呀!!F5系列的板子,激动呀!结果板子到星期五才拿到!开始的时候,感觉自己没多大问题,结果一上手就问题百出,因为没仔细看用户手册,导致光盘 ...

  7. cocos2d-x 2.x版本中,场景切换各方法调用顺序

    假设从A场景切换到B场景,调用各场景方法的顺序为: 如果没有切换效果(transition),则先调用B的init(),再调用A的onExitTransitionStart(),接着调用A的onExi ...

  8. mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法

    mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql se ...

  9. codeforces 617B Chocolate

    题意: 在给定01串中,问能分割成多少个子串?每个子串只有一个1. dp #include<iostream> #include<string> #include<alg ...

  10. hive 0.11的安装配置

    一.上传hive 0.11解压后的文件到linux 1.用的版本是shark站点提供的,可能是针对shark修改了代码. 2.追加mysql.oracle两个jdbc驱动包到lib目录下. 二.配置相 ...