本文记录项目中用到的 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); // 东八区当地时间
其他 getdate() 函数 获取当前时间各种信息 date() 函数 格式化时间 strtotime() 函数 根据具体日期获取时间戳 time() 函数 当前时间时间戳 date (php.net) php date / time 函数 (w3school)