本文實(shí)例總結(jié)了php日期操作技巧。分享給大家供大家參考,具體如下:
1、php將表單里面獲取的日期格式轉(zhuǎn)換成統(tǒng)一的格式
2015-9-9 都統(tǒng)一轉(zhuǎn)換成 2015-09-09 這樣在數(shù)據(jù)庫(kù)都是統(tǒng)一的格式,方便以后查詢
$year = "2015";
$month = "9";
$day = "09";
var_dump(checkdate($month,$day, $year));//月和日帶有前導(dǎo)0都是符合格式的
if(checkdate($month,$day, $year)===false){
exit('error');
};
$unixtime = mktime(2,2,2,$month,$day,$year);//目的是交給php轉(zhuǎn)換成月和日都帶有前導(dǎo)0的格式統(tǒng)一的格式存儲(chǔ)在數(shù)據(jù)庫(kù)方便以后查詢
var_dump(date("Y-m-d",$unixtime));
////交給php轉(zhuǎn)換成時(shí)間戳,然后反轉(zhuǎn)回來(lái)
2、獲取上一天的開(kāi)始時(shí)間戳和結(jié)束時(shí)間戳
本來(lái)思路是:
先用date獲取當(dāng)天的年月日。單獨(dú)獲取。得到年是2015月是9日是28然后減去1就可以了。但問(wèn)題出來(lái)了。
如果今天是1號(hào)呢。減去1就變成0了。上個(gè)月可能是28天,也可能是30天。
這樣子,先得到上一天的時(shí)間戳。讓php自動(dòng)去計(jì)算。
strtotime("-1 day");
//得到上一天的時(shí)間戳,現(xiàn)在是幾點(diǎn)就得到上一天這個(gè)時(shí)間點(diǎn)的時(shí)間戳,用這種方式好處是解決了上面問(wèn)題,php會(huì)自動(dòng)去計(jì)算上個(gè)月多少天
------------------------------------------------------------
<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");//設(shè)置時(shí)區(qū)
$last_day = strtotime("-1 day");//得到上一天的時(shí)間戳,現(xiàn)在是幾點(diǎn)就得到上一天這個(gè)時(shí)間點(diǎn)的時(shí)間戳
//通過(guò)時(shí)間戳得到年月日,以便mktime使用
$year = date("Y",$last_day);
$month = date("m",$last_day);
$day = date("d",$last_day);
$last_day_begin = mktime(0,0,0,$month,$day,$year);//昨天的一天開(kāi)始的時(shí)間戳
$last_day_end = mktime(23,59,59,$month,$day,$year);
echo '昨天開(kāi)始時(shí)間戳:';
var_dump($last_day_begin);
echo date('Y-m-d H:i:s',$last_day_begin);
echo '<br />';
echo '昨天結(jié)束時(shí)間戳:';
var_dump($last_day_end);
echo date('Y-m-d H:i:s',$last_day_end);
echo '<br />';
echo ($last_day_end-$last_day_begin)/(60*60);//恰好24個(gè)小時(shí)
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。