Ⅰ php 里如何進行時間比較
php比較時間一般都是變成時間戳去比較的。
使用函數strtotime函數把時間變成時間戳。
比如:
把2015年7月8日和2015年9月30日進滾敗困行比較。
//兩個大念時間點相差多少秒鍾
$sub=strtotime("2015-07-08"枯梁)-strtotime("2015-07-08");
Ⅱ 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
$time1 = mktime(10,20,30,2,5,2000); //2000-2-5 10:20:30
$time2 = mktime(18,30,20,5,2,2000); //2000-5-2 18:30:20
$diff = (int)(($time2-$time1)/(24*3600));
echo "$time2 和 $time1 的時間差為:" . $diff . "天<br>";
?>
Ⅳ 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中兩個時間如何相減
//可以先將時間轉化為時間戳進行加減,然後在轉化為時間
$a=date('H:i:s');
$b=date('H:i:s',strtotime('+50second'));
$aa=strtotime($b)-strtotime($a);
echodate('H:i:s',$aa);
Ⅵ php中兩個時間相減怎麼得到年數
使用格式化日期函數:date()
如:
有以下兩個時間戳,把時間戳轉換成年後相減再取絕對值:
$a= date('Y',1440700835);
$b= date('Y',1121720835);
echo abs( $a - $b) ;
Ⅶ php 時間加減問題,比如我的時間:$date_t=$_post[date_t] 我需要輸出這個時間的二天,或者加一天,怎麼寫
這個,你要知道,時間戳的概念不??
php讀取的時候就是用時間戳的。
$time = time();
這個代碼實現的就是 獲取當前的時間戳,如果你要根據本地的時間再加上2天或1天的話,
可以用js的函數解讀時間戳。
//功能:檢查日期格式是否是有效格式
function checkIsValidDate(str)
{
if(str == "") //如果參數為空,則返回false
return false;
var arrDate = str.split("-"); //把參數用split函數分割成數組,它等同與PHP中的explode函數
if(parseInt(arrDate[0],10) < 100) //如果年份小於100,則表示是21世紀
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]); //格式化為日期格式
if(date.getYear() == arrDate[0] //判斷格式化後日期的年,月,日是否和參數的相等,相等則是有效格式
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}
//功能:檢查開始時間是否小於結束日期
//參數:strStart 開始日期,strEnd 結束日期
function checkDateEarlier(strStart,strEnd)
{
if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
return false; //檢查日期格式是否有效
if (( strStart == "" ) || ( strEnd == "" )) //檢查日期是否為空
return false;
var arr1 = strStart.split("-");
var arr2 = strEnd.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1) //將月份格式化為08這種形式
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1) //將日格式化為08這種形式
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1) //將月份格式化為08這種形式
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1) //將日格式化為08這種形式
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2]; //將開始日期組合成一個字元串
var d2 = arr2[0] + arr2[1] + arr2[2]; //將結束日期組合成一個字元串
if(parseInt(d1,10) > parseInt(d2,10)) //將兩個字元串轉化成整數,如果d1>d2則開始日期大於結束日期
return false;
else
return true;
}
Ⅷ 用php計算給定兩個日期相差多少天
:
計算方法不只下面介紹的這些,只是一些比較常規的方法:
上面的php時間日期函數strtotime已經把字元串日期變成了時間戳,這樣只要讓兩數值相減,然後把秒變成天就可以了,比較的簡單,如下:
$days=round(($enddate-$startdate)/3600/24) ;
下面介紹另外一種方法:
上面判斷的是兩個日期的大小,下面則是判斷生日的程序代碼,得到的$n就是相距生日的天數。
$birthday=生日;
$birthday = preg_replace(‘/d+/’, Date(‘Y’), $birthday, 1);
$d = 60*60*24;
$n= floor((strtotime($birthday)-time())/$d);$n=$n+1;
還有如果相比的是現在的時間,就可以用time()函數,得到的就是現在的時間戳.
第二種情況呢,就是有資料庫,這樣就相對比較容易一些了!如果是MSSQL可以使用觸發器!用專門計算日期差的函數datediff()計算便可!
如果是MYSQL那就用兩個日期欄位的時間戳值,進行計算後便可得到相差的天數了。方法和上面的代碼很像。
Ⅸ php如何計算兩個時間戳之間相差的日時分秒
php要計算兩個時間戳之間相差的日時分秒可以參考以下內容:
//功能:計算兩個時間戳之間相差的日時分秒
//$begin_time 開始時間戳
//$end_time 結束時間戳
function timediff($begin_time,$end_time)
{
if($begin_time < $end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}
//計算天數
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
//計算小時數
$remain = $timediff%86400;
$hours = intval($remain/3600);
//計算分鍾數
$remain = $remain%3600;
$mins = intval($remain/60);
//計算秒數
$secs = $remain%60;
$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
return $res;
}
print_r(timediff(strtotime(2015-03-20 16:20:30'),strtotime('2015-05-25 11:10:10')));
PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。
它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
php相關語法及概念:
php 支持八種原始類型。
四種標量類型:boolean(布爾型) integer(整型) float(浮點型,也作「double」) string(字元串)
兩種復合類型:array(數組)object(對象)
最後是兩種特殊類型:resource(資源)NULL