Ⅰ php入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
本文实例讲述了PHP日期与时间操作技巧。分享给大家供大家参考,具体如下:
Demo1.php
<?php
//验证时间
//checkdate()
1.月份
2.日
3.年
//checkdate()
判断这个日期是否是合法的日期
//不合法的日期,试一试
if(checkdate(7,16,2010)){
echo
'这个日期是合法有效的';
}else{
echo
'这个日期是非法的。';
}
?>
Demo2.php
<?php
//date
--
格式化一个本地时间/日期
//date(),
彻底研究一下
//date()
可以存放两个参数,第一参数是日期和时间的格式化,[第二参数是时间戳]
//Y
表示四位数的年份,
y表示二位数的年份
//M
表示英文的月份缩写,m
表示阿拉伯数字的月份
//D
表示英文下的星期几缩写,d
表示阿拉伯数字的日
//第一个参数的格式化可以放一些无关紧要的字符串
//只要无关紧要的字符串不再
format
的目录里,就不会被识别
//echo
date('现在的日期是:Y-m-d');
//现在的日期是:2015-04-20
//时分秒
=
H
表示24小时制的小时,
//明明是
19
,为什么显示
11
点呢,东八区,差
8
个小时
//现在没有经过任何设置,所以时间在默认时区上
//echo
date('现在的日期是:Y-m-d
H:i:s');
//重点是年月日,时分秒
echo
date('r');
echo
date('现在的日期是:Y-m-d
H:i:sa');
?>
Demo3.php
<?php
//取得当前的时间,返回一个数组
//"sec"
-
自
Unix
纪元起的秒数
//"usec"
-
微秒数
//"minuteswest"
-
格林威治向西的分钟数
//"dsttime"
-
夏令时修正的类型
//print_r(gettimeofday());
//第一数组的元素就是时间戳
//gettimeofday()
就是取得的当前时间的时间戳
//$a
=
gettimeofday();
//sec
取得当前时间的时间戳
//转换成人可以看得懂的时间
//第二个参数,对于本例来讲,放与不放,是一样的。
//echo
date('Y-m-d
H:i:s',$a['sec']);
print_r(gettimeofday(0));
echo
gettimeofday(1);
?>
Demo4.php
<?php
//将时间戳转换成人可以看的懂的时间
//date()
函数的第二个参数就是时间戳
//如果第二个参数省略了,那么就返回当前时间
//如果第二个参数没有省略,那么就返回那个时间戳的时间
echo
date('Y-m-d
H:i:s',24554457865);
?>
Demo5.php
<?php
//getdate()
也可以转换时间戳
//print_r(getdate());
//Array
(
[seconds]
=>
26
[minutes]
=>
34
[hours]
=>
10
[mday]
=>
20
[wday]
=>
1
[mon]
=>
4
//[year]
=>
2015
[yday]
=>
109
[weekday]
=>
Monday
[month]
=>
April
[0]
=>
1429526066
)
$t
=
getdate();
echo
$t['year'];
//传递一个时间戳
print_r(getdate(1029526066));
?>
Demo6.php
<?php
//直接获取当前时间戳
//echo
time();//1429526328
//这个
time()
可以调整时间
//大家可以发现
time()
很有用处,可以过去现在和将来
echo
date('Y-m-d
H:i:s',time()+60*60*8);
?>
Demo7.php
<?php
//获取特定指定时间的时间戳
//这是当前的时间戳
//echo
time();
//我要取得
2008-08-08
08:08:08
$beijing2008
=
mktime(8,8,8,8,8,2008);
echo
date('Y-m-d
H:i:s',$beijing2008);
?>
Demo8.php
<?php
//使用时间戳计算时间差
$now
=
time();//当前的时间戳
$wnow
=
mktime(0,0,0,8,16,2016);
//两个时间戳相减可以得到差秒
echo
round(($wnow
-
$now)/60/60,2).'相差这几个小时';
?>
Demo9.php
<?php
//将人可读的时间,字符串形式,转换成时间戳
$a
=
strtotime('2010-7-16
15:15:15')-strtotime('2010-7-16
15:14:15');
if($a
>=
60){
echo
'请这位先生休息一会。';
}else{
echo
$a;
}
?>
Demo10.php
<?php
//获取当前文件的修改时间戳
echo
date('Y-m-d
H:i:s',getlastmod());
?>
Demo11.php
<?php
//配置系统环境变量
echo
date('Y-m-d
H:i:s');
echo
'<br/>';
//我开始设置时区
putenv('Tz=Asia/Shanghai');
echo
date('Y-m-d
H:i:s');
?>
Demo12.php
<?php
//putenv('Tz=Asia/Shanghai');
//获取当前时区
echo
date_default_timezone_get();
echo
'<br/>';
//开始配置默认时区
date_default_timezone_set('Asia/Shanghai');
echo
date('Y-m-d
H:i:s')
;
echo
'<br/>';
echo
date_default_timezone_get();
?>
Demo13.php
<?php
date_default_timezone_set('Asia/Shanghai');
//"tm_sec"
-
秒数
//"tm_min"
-
分钟数
//"tm_hour"
-
小时
//"tm_mday"
-
月份中的第几日
//"tm_mon"
-
年份中的第几个月,从
0
开始表示一月
//"tm_year"
-
年份,从
1900
开始
//"tm_wday"
-
星期中的第几天
//"tm_yday"
-
一年中的第几天
//"tm_isdst"
-
夏令时当前是否生效
print_r(localtime(time(),true));
//Array
(
[tm_sec]
=>
37
[tm_min]
=>
15
[tm_hour]
=>
19
//[tm_mday]
=>
20
[tm_mon]
=>
3
[tm_year]
=>
115
//[tm_wday]
=>
1
[tm_yday]
=>
109
[tm_isdst]
=>
0
)
?>
Demo14.php
<?php
//返回时间戳和微秒数
//怎么计算页面运行加载时间
//页面打开的时候获取一个时间
//页面结束的时候获取一个时间
//用结束的时间减去打开的时间,那么就是运行时间
//
list($a,$b)=explode('
',microtime());
//
echo
$b;
function
fn(){
list($a,$b)=explode('
',microtime());
return
$a+$b;
//返回出精确的秒数
}
//在页面打开的时候,获取一个时间
$start_time
=
fn();
for($i=0;$i<10000000;$i++){
//
}
//页面结束的时候,获取一个时间
$end_time
=
fn();
echo
round(($end_time
-
$start_time),4);
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
Ⅱ php时间格式转换
标准时间与时间戳转换如下:
<?php
$nowtime=date("Y-m-dH:i:s");
//标准时间转为时间戳
$dateline=strtotime($nowtime);
//时间戳转为标准时间
$nowtime=date('H:i:s',$dateline);
?>
PHP时间戳函数获取英文文本日期时间:
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2015-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2015-01-23 09:40:25
需要注意的问题:
<一>、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日历模块的运算逻辑求解!如何求日期对应的星期几!
现在以2010年6月14日为例说明。6月份共有30天,在这个日历表中共5行,首先需要确定当前所在的日期(当然也可以指定一个日期),比如14日,通过表格可以知道它在第3行对应星期一那列(第3周)。通常每个月第1天不是在表格开始的位置,位置并不固定,同样不固定的还有每个月的周数,有时候是4周,有时候是5周。这样,想要完成这个日历表格就需要确定一些基础的日期变量,下面具体来看需要设定的基础变量。
PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。
<?php
//date()函数的基本用法
$year = date('Y'); //获得年份,例如2006
$month = date('n'); //获得月份,例如04
$day = date('j'); //获得日期,例如3
?>
通过mktime()函数和date()函数获得当月的总天数。
//获得当月的总天数
$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));
同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。
//获得每个月的第一天,例如4
$firstDay = date("w", mktime(0,0,0,$month,1,$year));
现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。
(1)需要获得表格的数目。
//计算数组中的日历表格数
$tempDays = $firstDay + $daysInMonth;
(2)需要算出该月一共有几周(即表格的行数)。
//获得表格行数
$weeksInMonth = ceil($tempDays/7);
(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下:
<?php
for($j=0;$j<$weeksInMonth;$j++)
{
for($i=0;$i<7
;$i++)
{
$counter ++;
$week [$j] [$i] = $counter;
}
}
?>
(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下:
<?php
//创建日期二维数组
for($j = 0; $j < $weeksInMonth; $j ++) {
for($i = 0; $i < 7; $i ++) {
$counter ++;
$week [$j] [$i] = $counter;
//日期偏移量
$week [$j] [$i] -= $firstDay;
if (($week [$j] [$i] < 1) || ($week [$j] [$i] > $daysInMonth)) {
$week [$j] [$i] = "";
}
}
}
?>
(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期
不知是否正确,转自我的一个朋友
Ⅳ 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 /Date(1322500609000)/ 怎么转化
date_default_timezone_set("PRC");
//带微秒的时间格式
$time='2019-04-1716:11:36.343';
$timestamp=get_data_format($time);
var_mp($timestamp);die;
//输出1555517496343
functionget_data_format($time){
list($usec,$sec)=explode(".",$time);
$date=strtotime($usec);
$return_data=str_pad($date.$sec,13,"0",STR_PAD_RIGHT);//不足13位。右边补0
return$return_data;
}
// 输出 1555517496343 使用上面这个函数就可以把带微秒的时间转为时间戳了!
Ⅵ php date可以获取本年第几周,怎么转为时间戳
用到知识点:PHP时间转换函数。
<?php
header('content-type:text/html;charset=utf-8');
echo '今天是'.date('Y',time()).'年第'.date('W',time()).'周';
Ⅶ php 怎么把时间戳转换为周
<php
$time=time();
echodate('D',$time);//星期中的第几天,文本表示,3个字母Mon到Sun
echodate('l',$time);//星期几,完整的文本格式Sunday到Saturday
echodate('N',$time);//ISO-8601格式数字表示的星期中的第几天(PHP5.1.0新加)1(表示星期一)到7(表示星期天)
echodate('w',$time);//星期中的第几天,数字表示0(表示星期天)到6(表示星期六)
Ⅷ 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;?>
Ⅸ 求php 中长日期型转短日期型的方法,并且希望输出“星期几”
<?php
$XQ=array('日','一','二','三','四','五','六');//构建一个数组,用于将星期转换成中文
$RQ=strtotime('2014-09-0900:20:46');//将日期解析为Unix时间戳,当然,里面的参数你可以改成读取你数据库的数据
//最后是输出:
echodate('Y-m-d',$RQ),'星期',$XQ[date('w',$RQ)];