1. php如何計算兩列日期時間的時差
轉換成時間戳,然後兩個時間相減得到的是兩個時間差的秒數,每60是一分鍾3600是一個小時86400是一天,剩下的就簡單了
2. php中刪除資料庫中在當前時間一天以前的數據怎麼實現啊
兩種方案:
一種是正統方案,把SQL語句提交給運維人員,他們會處理,一般是用crond解決。
另外,有一種很邪行的辦法,不推薦,但無可奈何的時候可以用一下。
如果有某個文件,比如comm.php是被所有文件引用的,在它裡面加一段:
if(mt_rand(1,1000)==1){
//runyoursql
}
其目的就是按照千分之一的概率去執行刪除數據的動作。
一方面確實可以刪除數據,另一方面也避免了每次執行PHP頁面都佔用資料庫資源。
可以適當監控一下,調整成合適的執行概率。
或者,把這一小段代碼放到index.php裡面也可以。
3. php如何計算兩個日期中間有多少天,並每過一天減1
date_default_timezone_set("PRC");//設置中國時區
$t1='2015-6-26';//你自己設置一個開始時間
$t2=date('Y-m-d');//獲取當前時間,格式和$t1一致
$t=strtotime($t2)-strtotime($t1);//拿當前時間-開始時間=相差時間
$t=$t/(3600*24);//此時間單位為天
if($t>=60)//對比當你設置了60天,那麼當大於或等於60天時提示
{
die("時間已到期,請續費");
}
else
{
die("剩餘天數:".(60-$t));
}
4. 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");
可以隨便自由組合,以達到任意輸出時間的目的
5. 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;
}
6. 用php怎麼獲取當前的前一天和後一天的日期啊
前一天 date("Y-m-d",time()-86400);
後一天 date("Y-m-d",time()+86400);
7. php有沒相關函數可以獲取給定日期的上個月的第一天及最後一天
沒有,可以取當前月的第一天00:00的時間戳,然後減24小時,再date即是上個月的最後一天。
如:
$prev_month_last_day = date("Y/m/d", strtotime(date("Y-m-1")) - 86400);
list($year, $month, $day) = explode("/", $prev_month_last_day);
$prev_month_first_day = $year . '/' . $month . '/1';
printf("first day of prev month is : %s\nlast day of prev month is : %s\n", $prev_month_first_day, $prev_month_last_day);