php时间格式怎么转换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php时间格式怎么转换?相关的知识,希望对你有一定的参考价值。

php日期格式转换总结:

<?php

//将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈

echo strtotime(date('Y-m-d',time()).' 00:00:00');

//将GNU 日期输入格式的字符转换成时间

echo strtotime('now');

//标准的字符串转换成时间

$t = '2012-9-10 15:18:06';

$time = strtotime($t);

//将时间转换成日期字符yyyymmdd,再转换成整型格式

$d = intval(date('Ymd',$time));

echo '付款时间:'.$d;

<?php
header("Content-type: text/html; charset=utf-8");
$txDate = '2016-06-16';

$dateTime1 = strtotime($txDate);  //int 1466028000 将英文文本日期时间解析为 Unix 时间戳

$dateTime2= date("Y-m-d H:i:s",$dateTime1); //string '2016-06-16 00:00:00'

(length=19)  Date() 函数把时间戳格式化为更易读的日期和时间。

//拼接今日最后时间2016-06-16 23:59:59

$dateTime= date("Y-m-d H:i:s",strtotime(date("Y-m-d",strtotime($dateTime2))."+ 23 hours 59 minutes  59 seconds ")); //string '2016-06-16 23:59:59' (length=19)

$sql = select * form `vvt_user` where userid = 100 AND date_time >= $dateTime2 AND date_time <= $dateTime;?>

参考技术A

一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下:

echo strtotime(”2009-1-22″) 结果:1232553600

说明:返回2009年1月22日0点0分0秒时间戳

二,PHP时间戳函数获取英文文本日期时间 示例如下:

便于比较,使用date将当时间戳与指定时间戳转换成系统时间

(1)打印明天此时的时间戳strtotime(”+1 day”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25

(2)打印昨天此时的时间戳strtotime(”-1 day”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25

(3)打印下个星期此时的时间戳strtotime(”+1 week”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25

(4)打印上个星期此时的时间戳strtotime(”-1 week”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25

(5)打印指定下星期几的时间戳strtotime(”next Thursday”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00

(6)打印指定上星期几的时间戳strtotime(”last Thursday”)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00
以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。

示例:

<?php
//时间戳转日期
$date_time_array = getdate(1297845628); //1311177600  1316865566

$hours = $date_time_array["hours"];

$minutes = $date_time_array["minutes"];

$seconds = $date_time_array["seconds"];

$month = $date_time_array["mon"];

$day = $date_time_array["mday"];

$year = $date_time_array["year"];

echo

"year:$year\\nmonth:$month\\nday:$day\\nhour:$hours\\nminutes:$minutes\\nseconds:$

econds\\n";//正常日期转时间戳

echo mktime(0, 0, 0, 9, 18, 2011) . "\\n";

echo mktime(0, 0, 0, 9, 25, 2011) . "\\n"; //可以对此进行格式化

echo "time()显示年月日时分秒:" . date("Y-m-d H:i:s", time()) . "\\n";//这样连时,分秒一起显示

echo "time()只显示年月日:" . date("Y-m-d ", time()) . "\\n"; //只年示年月日

echo "时间戳格式化:" . date("Y-m-d H:i:s", 1297845628) . "\\n"; //直接使用时间戳

//把正常日期转成时间戳了,这里如果有时分秒也是同理,

$year=((int)substr("2008-12-04",0,4));//取得年份

$month=((int)substr("2008-12-04",5,2));//取得月份

$day=((int)substr("2008-12-04",8,2));//取得几号

echo mktime(0,0,0,$month,$day,$year);


?>


需要注意的部分
<一>、PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)

<二>、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"); ”这个可以由程序员任意设置,我的推
荐。
时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore

这样就可以实现输出的是北京时间了

参考资料

php中时间戳和日期格式的转换.新浪博客[引用时间2017-12-28]

以上是关于php时间格式怎么转换?的主要内容,如果未能解决你的问题,请参考以下文章

php时间格式转换

php取出mysql表单数据为时间戳,怎么转换成时间格式

jsp时间格式转换

怎么把PHP格式转换成TXT格式?

关于时间格式的转换,MYSQL,PHP,10位数字表示时间

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