热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php如何处理公元前日期

导读:本篇文章编程笔记来给大家介绍有关php如何处理公元前日期的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、PHP输

导读:本篇文章编程笔记来给大家介绍有关php如何处理公元前日期的相关内容,希望对大家有所帮助,一起来看看吧。

本文目录一览:


  • 1、PHP 输入0001-01-02 日期格式


  • 2、php 如何处理 1970前时间 时间戳失效了


  • 3、用PHP怎么取得7天前的日期


  • 4、wordpress如何修改文章的发布时间为公元前XX年?比如公元前7000万年的恐龙时代?


  • 5、如果在PHP中判断某一天是在某一日期的前或后


  • 6、php怎么将指定日期转换为时间戳?

PHP 输入0001-01-02 日期格式

在命令行窗口键入date,空一格,输入新日期,确认。

需要注意的问题:一、PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式2015-12-5。

二、php5.1以上时间戳会与实际时间相差8小时,解决办法如下:

1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法。

2、修改php.ini。打开php.ini查找date.timezone去掉前面的分号,后面加Asia/Shanghai,重启apache服务器即可。缺点就是如果程序。放到别人的服务器上,不能修改php.ini,那就奈何不得了。

3、在程序中添加时间的初始化的语句即:date_default_timezone_set(Asia/Shanghai)。

php 如何处理 1970前时间 时间戳失效了

php 5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):

//1、Unix时间戳转日期  function unixtime_to_date($unixtime, $timezone = 'PRC') {      $datetime = new DateTime("@$unixtime"); //DateTime类的bug,加入@可以将Unix时间戳作为参数传入      $datetime-setTimezone(new DateTimeZone($timezone));      return $datetime-format("Y-m-d H:i:s");  }  

  

//2、日期转Unix时间戳  

function date_to_unixtime($date, $timezone = 'PRC') {  

    $datetime= new DateTime($date, new DateTimeZone($timezone));  

    return $datetime-format('U');  

}  

  

echo date_to_unixtime("1900-1-31 00:00:00"); //输出-2206425952  

echo 'br';  

echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00

用PHP怎么取得7天前的日期

在PHP里面,使用time函数获得当前的时间(年月日时分秒都有,实际上是从1970 年 1 月 1 日 00:00:00到当前时间的秒数。

那么,要获得7天前的时刻只需要当前时刻减去7天*24小时/天*3600秒/小时即可,也就是time()-7-24*3600。

例子代码:

?php

  $t=time();

  echo date('Y-m-d H:i:s',$t)."\n";

  $t-=7*24*3600;

  echo date('Y-m-d H:i:s',$t)."\n";

?

上面的代码显示:

2015-12-17 13:29:59

2015-12-10 13:29:59

如果你只需要到天,不需要时分秒,那么date函数的第一个参数改为'Y-m-d'即可。

wordpress如何修改文章的发布时间为公元前XX年?比如公元前7000万年的恐龙时代?

php能表达的时间是有限的。php最大时间戳是:2038年1月19号

有效的时间戳典型范围是格林威治时间1901年12月13日20:45:54到2038年1月19日03:14:07。(此范围符合32位有符号整数的最小值和最大值)。不过在 PHP 5.1 之前此范围在某些系统(如 Windows)中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。

当然你也可以设置成一组无意义的数字,写入数据表中,当做时间来处理,但是不能作为时间操作!

如果在PHP中判断某一天是在某一日期的前或后

//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。

$timestamp = time();

$dateYear = date('Y', $timestamp);//当前年,依当前需要可以不需要比较,但有时也许会用到,比如你的记录不是当年要处理的

$dateMOnth= date('n', $timestamp);//当前月份数字,没有前导零

$dateDay = date('j', $timestamp);//月份中的第几天,没有前导零

//剩下的就是比较了,比如你要比较的日期是 2007-03-01

$eventDate = '2007-03-01';

$eventDateArr = explode('-', $eventDate);

$eventYear = intval($eventDateArr[0]);

$eventMOnth= intval($eventDateArr[1]);

$eventDay = intval($eventDateArr[2]);

//上面是年月日的拆分,根据实际情况可以调整,如果你直接可以得到就不需要这样取了。

//之后剩下的就是比较了,先比较年

if($dateYear == $eventYear) {

//同年

if($dateMOnth== $eventMonth) {

//同月

if($dateDay == $eventDay) {

//同一天,就是当前日期就是事件触发的日期

} elseif($dateDay $eventDay) {

//事件已经过期了

} else {

//事件触发日期还没到

}

} else {

//之前或之后,再需要详细判断可以在这里比较哪个月份大

}

} else {

//之前或之后,再需要详细判断可以在这里比较哪个年份大

}

//其实这种比较是最简单的逻辑判断,如果你在记录时间触发日期时记录的是 unix 时间戳,这里可以直接进行时间戳比较不过需要处理一下,因为时间戳是精确到秒的

//或者把你记录的日期及其后一天直接转化成 unix 时间戳,时分秒都用 0 ,和当前时间戳比较,细节判断就自己去分析吧,可用函数去查查手册里面 strtotime() ,时间相关函数参数很多,不过用过几次就熟悉了。

php怎么将指定日期转换为时间戳?

在MySQL中完成 。

下面介绍两种php将指定日期转换为时间戳的方法:

第一种:在MySQL中完成

这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。

UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 

一般形式:select FROM_UNIXTIME(1156219870);

日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() 

一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′); 

举例:mysql查询当天的记录数: 

$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”; 

当然大家也可以选择在PHP中进行转换,下面说说在PHP中转换。

第二种:在PHP中完成 这种方式在PHP程序中完成转换,优点是无论是不是数据库中查询获得的数据都能转换,转换范围不受限制,缺点是占用PHP解析器的解析时间,速度相对慢。

UNIX时间戳转换为日期用函数: date() 一般形式:date('Y-m-d H:i:s', 1156219870);

日期转换为UNIX时间戳用函数:strtotime() 一般形式:strtotime('2010-03-24 08:15:42')

php中时间转换函数strtotime(date()) date("Y-m-d H:i",$unixtime)

php中获得今天零点的时间戳 要获得零点的unix时间戳,可以使用$todaytime=strtotime(“today”),然后再使用date("Y-m-d H:i",$todaytime)转换为日期。

时间戳转换函数:date("Y-m-d H:i:s",time()),"Y-m-d H:i:s"是转换后的日期格式,time()是获得当前时间的时间戳。如果是date("Y-m-d H:i:s",time()),则小时分秒一起显示;如果是date("Y-m-d ", time()),只显示年月日。例如:date("Y-m-d H:i:s",time())转换后为:2010-07-18 18:42:48 date("Y-m-d",time())。

结语:以上就是编程笔记为大家介绍的关于php如何处理公元前日期的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


推荐阅读
author-avatar
氤氲微凉521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有