溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php如何刪除3天前的數(shù)據(jù)

發(fā)布時(shí)間:2021-09-17 09:38:07 來源:億速云 閱讀:149 作者:小新 欄目:編程語言

這篇文章主要介紹了php如何刪除3天前的數(shù)據(jù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

php刪除3天前數(shù)據(jù)的方法:1、通過“date('Ymd',strtotime('-3 days'));”獲取三天前的日期;2、通過“unlink($file_name);”刪除三天前的文件即可。

本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,Dell G3電腦

php怎么刪除3天前的數(shù)據(jù)?

PHP每天數(shù)據(jù)寫當(dāng)天文件,第二天讀取,和刪除三天前的文件

關(guān)于這個(gè)腳本,我思路是文件名直接用當(dāng)天的日期,之后讀取文件和刪除文件就很方便了。如:20190218.txt

關(guān)于時(shí)間的處理:獲取當(dāng)前時(shí)間可以使用date()函數(shù),獲取到的是當(dāng)前的時(shí)間戳,如果想顯示日期可以給里面加參數(shù),參數(shù)規(guī)定時(shí)間顯示的格式,如data("Ymd"),是本次我使用的日期格式,輸出的數(shù)據(jù)就是"20190218"這樣;date("Y-m-d")是"2019-02-18";如果還要顯示具體的時(shí)間,date("Y-m-d H:i:s"),結(jié)果如"2019-02-18 10:51:26"。關(guān)于獲取前幾天或后幾天的時(shí)間,可以使用strtotime()方法。這個(gè)方法的作用是將英文文本日期時(shí)間解析為 Unix 時(shí)間戳。使用方法如:date("Ymd",strtotime("-1 day");獲取昨天的日期,若是獲取三天前的,則把"-1 day"換成"-3 days"即可;當(dāng)然,也可以把day換成mouth,week,hour,year等,前面是“-”表示前幾天或幾小時(shí),“+”表示后幾天或幾小時(shí)的時(shí)間。由于它是按時(shí)間戳算,所以只能計(jì)算1970年之前的。自 January 1 1970 00:00:00 GMT 起的秒數(shù)。

$date = date("Ymd");
$file_name = '/tmp/'.$date.'.txt';

以上代碼是獲取當(dāng)前時(shí)間并生成文件名的部分,文件存在/tmp目錄下。

PHP寫文件:寫文件需要一條數(shù)據(jù)寫一行,最開始使用的是file_put_contents(),用于把一個(gè)字符串寫入文件中。這個(gè)方法的語法是:

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

參數(shù)的含義分別是:

php如何刪除3天前的數(shù)據(jù)

為了避免出錯(cuò),數(shù)據(jù)寫入前都先使用json_encode編碼為json字符串。使用file_put_contents方法寫入數(shù)據(jù),后面勢必要加FILE_APPEND,但是數(shù)據(jù)會(huì)直接跟在后面,讀取的時(shí)候讀取一行數(shù)據(jù)會(huì)把整個(gè)文件作為一行數(shù)據(jù)都讀出來,而不是取一條。解決的辦法是每行數(shù)據(jù)后都加入一個(gè)換行符。后面發(fā)現(xiàn)了PHP更為方便的一個(gè)文件處理方法,就不再用這個(gè)方法。

$fp = fopen($file_name,'a'); //打開文件,生成文件句柄,如果文件不存在則新建。
fwrite($fp,json_encode($log)."\n"); //寫入數(shù)據(jù)
fclose($fp); //關(guān)閉文件

PHP讀取文件:使用的方法是fgets(),該方法一次讀取一行數(shù)據(jù)。

$date = date('Ymd',strtotime('-1 day')); //獲取前一天的日期
$file_name = '/tmp/'.$date.'.txt'; //前一天的文件名
if(file_exists($file_name)) {
    $fp = fopen($file_name, "r");
    while (!feof($fp)) {
        $log = fgets($fp);
        $log = json_decode($log, true);
        ...
        //使用讀取的數(shù)據(jù),記得判空,最后一行是個(gè)換行符
        ...
        }

    fclose($fp);
}

PHP刪除文件:使用unlink方法,若成功,則返回 true,失敗則返回 false。

php如何刪除3天前的數(shù)據(jù)

$date = date('Ymd',strtotime('-3 days')); //獲取三天前的日期
$file_name = '/tmp/'.$date.'.txt'; //三天前的文件名
if(file_exists($file_name)){
    unlink($file_name); //刪除文件
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php如何刪除3天前的數(shù)據(jù)”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI