本文记录项目中用到的 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. hibernate注解——@Temporal

    @Temporal(TemporalType.TIMESTAMP) @Column(name="createTime",nullable=false) private Date c ...

  2. Asp.net MVC使用Model Binding解除Session, Cookie等依赖

    上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...

  3. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  4. php.ini配置解析

    为了让PHP读取这个文件,它必须被命名为'php.ini'. PHP 查找配置文件次序:当前工作目录:环境变量PHPRC  ; 指明的路径:编译时指定的路径.  ; 在windows下,编译时的路径是 ...

  5. c#-轮询算法

    这两天做东西,业务上有个特殊的需求,在用户访问页面的时候,针对某一行代码进行控制,按照概率来进行显示,我做的是针对当前页面的曝光进行处理,曝光代码是第三方的,页面上只要有这段代码就算是执行了这段曝光代 ...

  6. Oracle 列转行函数 Listagg()

    这是最基础的用法: LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX) 例: select listagg(oeid,',') within GROUP (ord ...

  7. socket学习之聊天室

    服务端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

  8. Java api 入门教程 之 JAVA的IO处理

    IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的.就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入.所以在程序中提到输入和输出时,也需要区分清楚是相 ...

  9. Java api 入门教程 之 JAVA的Date类与Calendar类

    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使 ...

  10. sqlite3 shell的使用

    sqlite的安装 1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html 当前的最新版本为:sqlite-shell-win32-x86 ...