Ⅰ 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)];