php日期处理
Ⅰ php 日期提交后怎么判断这个日期格式是否正确
1、首先PHP中可以获取当前时间戳,利用time()函数,并且不需要参数,直接返回当前日期时间,如下图所示。
Ⅱ php中怎么格式化日期
date(format,time)函数有2个参数用来格式化日期的输出,第一个format是你希望的格式像Y/m/d就是月日年,像h:i:s就是小时:分钟:秒,开头字母的大小写代表不同的时间制度,有12小时有24小时。
第二个参数time就是需要进行格式化的时间,默认是现在的当前时间,也可能是你保存在数据库中的过去的时间或者将来的时间。更加具体的说明参见网络文库的date函数很详细。strtotime()函数是把文本的时间转变为时间戳。
怎么用呢?刚刚说的date()函数的第二个参数就是一个时间戳,也就是说你要输出的保存在数据库中的时间也许是一个文本字符串,需要用strtotime()函数转变为时间戳后送给date()函数进行格式化输出。
标准实例为:date("D jS F Y g.iA",strtotime($dateposted))。$dateposted是我保存在数据库中的一个文本时间。如此形式就可以完美输出了。
Ⅲ php怎么将指定日期转换为时间戳
date('Y-m-d H:i:s', 1156219870);
1、 UNIX时间戳转换为日期用函数: date()
一般形式:date('Y-m-d H:i:s', 1156219870);
2、日期转换为UNIX时间戳用函数:strtotime()
一般形式:strtotime('2010-03-24 08:15:42');
3、这种方式在PHP程序中完成转换,优点是无论是不是数据库中查询获得的数据都能转换,转换范围不受限制,缺点是占用PHP解析器的解析时间,速度相对慢。
(3)php日期处理扩展阅读
PHP构造函数和析构函数
1、在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。
2、在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
3、在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&;” 来声明是要做一个引用,而不是一个 Copy。
4、在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
参考资料
网络-php
Ⅳ 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 中的 date() 函数用于对日期或时间进行格式化。
PHP Date() 函数把时间戳格式化为更易读的日期和时间。
date(format,timestamp)
参数说明
format 必需。规定时间戳的格式。
timestamp 可选。规定时间戳。默认是当前时间和日期。
注释:时间戳是一种字符序列,它表示具体事件发生的日期和事件。
获得简单的日期
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。
下面的例子用三种不同方法格式今天的日期:
实例
<?php
echo "今天是 " . date("Y/m/d") . "<br>";
echo "今天是 " . date("Y.m.d") . "<br>";
echo "今天是 " . date("Y-m-d") . "<br>";
echo "今天是 " . date("l");
?>
Ⅵ php 时间加减
<?php
echo "今天:",date('Y-m-d H:i:s'),"<br>";
echo "明天:",date('Y-m-d H:i:s',strtotime('+1 day'));
?>
上一行输出当前时间,下一行输出明天时间
这里+1 day
可以修改参数1为任何想需要的数 day也可以改成year(年),month(月),hour(小时),minute(分),second(秒)
如
date('Y-m-d H:i:s',strtotime("+1 day +1 hour +1 minute");
可以随便自由组合,以达到任意输出时间的目的
注:该方法之针对1970年以后试用,也就是时间戳的适用范围。
php 常用日期相函数[日期加减,两日期之差,日期转换时间截]
下面这些代码是一些常用的日期处理函数了,可以两个时间的日期加减,两日期之差,日期转换时间截等。
echo date('Y-m-d',strtotime('+1 d',strtotime('2009-07-08')));//日期天数相加函数
echo date("Y-m-d",'1246982400');
echo '<br>';
echo date("Y-m-d",'1279123200');
die();
$d = "2009-07-08 10:19:00";
echo date("Y-m-d",strtotime("$d +1 day")); //日期天数相加函数
function dateToTime($d)//把日期转换成时间堆截
{
$year=((int)substr("$d",0,4));//取得年份
$month=((int)substr("$d",5,2));//取得月份
$day=((int)substr("$d",8,2));//取得几号
return mktime(0,0,0,$month,$day,$year);
}
/*
下面函数计算两日期之差
*/
$Date_1="2009-07-08";
echo $Date_1+1;
$Date_2="2009-06-08";
$Date_List_a1=explode("-",$Date_1);
$Date_List_a2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_a1[1],$Date_List_a1[2],$Date_List_a1[0]);
$d2=mktime(0,0,0,$Date_List_a2[1],$Date_List_a2[2],$Date_List_a2[0]);
$Days=round(($d1-$d2)/3600/24);
echo "两日期之前相差有$Days 天";
Ⅶ php 怎么将指定日期转换为时间戳
把正常日期格式转为时间戳呢,请看如下代码:
$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 如何处理 1970前时间 时间戳失效了
php5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):
//1、Unix时间戳转日期functionunixtime_to_date($unixtime,$timezone='PRC'){$datetime=newDateTime("@$unixtime");//DateTime类的bug,加入@可以将Unix时间戳作为参数传入$datetime->setTimezone(newDateTimeZone($timezone));return$datetime->format("Y-m-dH:i:s");}
//2、日期转Unix时间戳
functiondate_to_unixtime($date,$timezone='PRC'){
$datetime=newDateTime($date,newDateTimeZone($timezone));
return$datetime->format('U');
}
echodate_to_unixtime("1900-1-3100:00:00");//输出-2206425952
echo'<br>';
echounixtime_to_date(date_to_unixtime("1900-1-3100:00:00"));//输出1900-01-3100:00:00
Ⅸ 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() ,时间相关函数参数很多,不过用过几次就熟悉了。