本文记录项目中用到的 PHP Date 相关,备忘。

日期格式约定为 xx-xx-xx 格式(字符串),例如 2016-03-09

xx-xx-xx -> 时间戳

$date = "2016-03-09";
$timestamp = strtotime($date);  // 1457481600

这是完完全全的服务器的时间戳(ps:这些函数依赖于服务器的本地设置,如果默认设置的话是零时区),"2016-03-09" 这个日期是零时区(本初子午线)的时间。如果要在客户端获取该时间戳,可以这样:

var timestamp = Date.UTC(2016, 2, 9) / 1000; // 1457481600

作为对比:

var date = new Date(2016, 2, 9);
var timestamp = +date / 1000; // 1457452800

而 (1457452800 - 1457481600) / 3600 = -8。

因为 date 获取的变量值是客户端本地时间。而本地(东八区)2016 年 3 月 9 日时,零时区应该是 2016 年 3 月 8 日 16 点,所以时间戳会小。详见 Javascript Date

时间戳 -> xx-xx-xx

$timestamp = 1457481600;

$date = date("Y-m-d", $timestamp);  // 2016-03-09

获取当前时间、昨天时间等(xx-xx-xx 格式)

// 获取当前时间
$today = date("Y-m-d");  // 2016-03-09

// 获取昨天时间
$yesterday = date("Y-m-d", strtotime('-1 days')); // 2016-03-08

改变时区

PHP 获取的都是服务器的时间,而默认是零时区,如果要改成东八区,可以这样:

date_default_timezone_set("Asia/Shanghai");
$time = date("Y-m-d H:i:s"); // 东八区当地时间

遍历 xx-xx-xx ~ xx-xx-xx

$startDate = "2016-01-02";
$endDate = "2016-03-10";

$startTimeStamp = strtotime($startDate);
$endTimeStamp = strtotime($endDate);

for ($i = $startTimeStamp; $i <= $endTimeStamp; $i += 86400 ) {
  $day = date("Y-m-d", $i);

  // 操作 $day
  // var_dump($day);
}

其他

PHP Date ( I need to use)的更多相关文章

  1. JavaScript Date对象

    本篇主要介绍 Date 日期和时间对象的操作. 目录 1. 介绍:阐述 Date 对象. 2. 构造函数:介绍 Date 对象的构造函数new Date()几种方式. 3. 实例方法:介绍 Date ...

  2. ExtJS 4.2 Date组件扩展:添加清除按钮

    ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. ...

  3. Java 时间类-Calendar、Date、LocalDate/LocalTime

    1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...

  4. 为什么你SQL Server的数据库文件的Date modified没有变化呢?

    在SQL Server数据库中,数据文件与事务日志文件的修改日期(Date Modified)是会变化的,但是有时候你会发现你的数据文件或日志文件的修改日期(Date Modified)几个月甚至是半 ...

  5. mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法!

    mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法! 修改mysql5.7的配置文件即可解决,方法如下: linux版:找到mysql的安装路径进入默认的为/usr/shar ...

  6. date命令

    GNU的date提供+%s(小写s), 能打印出自1970-01-01 00:00:00到当前时间的秒数. 这可能大家都不陌生,但有两点需要注意: 1. %s存在于GNU扩展版本.像在solaris等 ...

  7. 【Spring】SpringMVC中浅析Date类型数据的传递

    在控制器中加入如下代码: @InitBinder public void initBinder(ServletRequestDataBinder bin){ SimpleDateFormat sdf ...

  8. Date.parse

    JavaScript: Date.parse(),一个参数,参数类型是 JavaScript 中的 Date 类型. 返回值 : 得到一个 Unix 时间戳,比如说,1470993235000,这种东 ...

  9. Mysql FROM_UNIXTIME效率 VS PHP date()效率 数据说话!

    这几天在做数据统计,有几个统计图的需求是这样的: 按照年.月.日统计订单数量, 比方一年12个月,统计出1月多少订单,二月多少订单,按照这种模式统计. 但是数据库里存放的是 timestamp  的  ...

  10. 扩展JS Date对象时间格式化功能

    在自己JS代码中引入一下代码: Date.prototype.format =function(format) { var o = { "M+" : this.getMonth() ...

随机推荐

  1. Git从零开始怎么学?

    最近,公司项目代码版本库管理,全部从svn 迁移到Git 最近了解了一段时间 近期会把整个Git使用过程陆续分享 如何从零开始使用Git

  2. ios界面布局整理

    1 UIView 1.1 创建自定义的UIView的xib文件 [1]设置 file's Owner的 Custom Class 中的class 执行自定义控件类 [2]设置当前UIView 的屏幕大 ...

  3. Android搭建junit测环境

    在AndroidManifest.xml文件中增加两个东西,分别是: 1.uses-library ,位于application里面. 2.instrumentation,与application同级 ...

  4. C# 和 C++ 数据类型对照表

    又要用C#调用C++写好的api函数,为了方便,将网上的数据类型做个整理,方便以后查找,以后遇到需要的在进行查找 C++ C#             WORD ushort     DWORD ui ...

  5. Servlet/JSP-02 Servlet相关类

    ServletConfig / ServletContext / ServletRequest / ServletResponse 一. ServletConfig:封装了Servlet得配置信息,并 ...

  6. Linux学习书籍推荐

    入门书: <鸟哥的私房菜(基础篇)> <鸟哥的私房菜(服务篇)> <Linux命令行与Shell脚本编程大全(第2版)> <UNIX/Linux 系统管理技术 ...

  7. (一)半小时开发一个APP

    [前言] HPP是什么? HybirdApp的简称,详细介绍参见:HPP--让所有中小企业拥有自己的APP 说白了就是用html+css+js开发app,包括ios和android版本. HBuild ...

  8. spring mvc 详细配置(转)

    转自: http://www.cnblogs.com/superjt/p/3309255.html 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是 ...

  9. BUCK-BOOST反激变压器设计

    Buck-Boost电路中,最低电压为其最恶劣情况 以下图为例: 注:1.Np为初级绕组匝数,Ns为次级绕组匝数: 2.Vmos为MOS最大耐压值,1为整流管压降,Vl为漏,Vl=100V,Vmos选 ...

  10. POJ1386Play on Words[有向图欧拉路]

    Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11846   Accepted: 4050 De ...