PHP 时间 date,strtotime ,time计算1970开始的第几天

首先,需要看你的php时区配置参数

方式1:更改php配置文件,然后从其fast-cgi或者php调用的地方;

方式2:date_default_timezone_set(‘PRC‘);

date函数用于日期函数的获取,这里需要注意的,date得到的我们可以理解为概念时间,跟地区有关系。如北京时间和伦敦时间同一个时刻对应不同的时间有8小时的时差,北京时间早8小时。

time和strtotime得到的是物理时间,不存在和地区的联系,全球统一。

在项目有需要计算1970开始的第几天,这里就出现了问题。用时间秒去算的时候。

北京时间2016-01-14 4:00:00和2016-01-13 13:00:00得到同一个时间。

所以用strtotime转换到时间戳是内部有减去地区时间差的操作。

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = time();
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = strtotime(date(‘Y-m-d H:i:s‘));
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = strtotime(‘2016-04-14 07:00:00‘);
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

时间: 2024-10-10 12:52:21

PHP 时间 date,strtotime ,time计算1970开始的第几天的相关文章

js时间Date对象介绍及解决getTime转换为8点的问题

前言 在做时间转换的时候,发现用“2016-04-12”转出来的时间戳是 2016-04-12 08:00的时间点,而不是0点. new Date('2016-04-12').getTime(); // 1460419200000 new Date(1460419200000); // Tue Apr 12 2016 08:00:00 GMT+0800 最后发现,如果将日期格式换成“2016/04/12”,则正常换算成0点. new Date(new Date('2016/04/12').get

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat

时间Date的各种获取方式

常用的时间获取方式 public class DateUtils { /** * 获取时间戳 * 输出结果:1438692801766 */ @Test public void getTimeStamp() { Date date = new Date(); long times = date.getTime(); System.out.println(times); //第二种方法: new Date().getTime(); } /** * 获取格式化的时间 * 输出格式:2015-08-0

Date()日期简单计算

/** * 判断是否为闰年 * @param year * @return */ public boolean isLeap ( int year ) { if ( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ) return true; else return false; } /** * 判断某年某月总天数 * @param year * @param month * @return */ public int get

Java 日期时间 Date类型,long类型,String类型表现形式的转换

1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDateFormat sdf= new SimpleDateFormat("MM/dd

PHP时间日期操作增减(date strtotime) 加一天 加一月

date_default_timezone_set('PRC'); //默认时区 //当前的时间增加5天 $date1 = "2014-11-11"; echo date('Y-m-d',strtotime("$date1 +5 day"));  //输出结果:2014-11-16 //相应地,要增加月,年,将day改成month或year即可 //+++ 今天.昨天.明天 .上一周.下一周 +++++++++ echo "今天:",date(&

PHP date, strtotime, mktime处理

date('Y-m-d', $time()); date('Y-m-d', '1453996800'); date('Y-m-d H:i:s',  '1453996800'); date('H:i',  '1453996800'); date('w',  '1453996800'); 星期中的第几天,数字表示 0(星期天)到 6(星期六) ,  对应moment('1453996800000').format('d') date() 函数格式化一个本地时间/日期. date(format,tim

日期类的时间从为什么是从1970年1月1日(格林威治时间)

I suspect that Java was born and raised on a UNIX system.UNIX considers the epoch (when did time begin) to be midnight, January 1, 1970.是说java起源于UNIX系统,而UNIX认为1970年1月1日0点是时间纪元. 但这依然没很好的解释"为什么",出于好奇,继续Google,总算找到了答案: http://en.wikipedia.org/wiki/

基础笔记4(包装类,时间date. calendar

1.包装类 基本类型和对象. 编译器会对基本类型和包装类进行自动拆箱,装箱处理 Interger  i=5; int i=new Interger(4); 一个缓存问题:以便提高效率 integer i=1345; integer i2=1234; i==i2; //flase i.equals(i2); //ture integer i3=13; integer i4=13; i3==i4; //true i3.equals(i4); //true 虚拟机对于[-128,127]之间的数会当作