亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將今天與數據庫中的日期進行比較,并檢查天氣是否比今天早了 30 天

將今天與數據庫中的日期進行比較,并檢查天氣是否比今天早了 30 天

PHP
精慕HU 2023-08-06 15:43:20
我有各種用戶存儲在數據庫中。我需要檢查每個用戶的日期并將今天的日期與數據庫中的日期進行比較,如果今天是數據庫中日期的第 30 天,則執行curl。以下是我的代碼public function repeatPayment(){    //return "hi22";    $users=Payment::all();    foreach ($users as $user)    {        $trans_id = $user->transactionid;        $clinicid = $user->clinicID;        $last_transaction_date = $user->updated_at;        echo $last_transaction_date."<br>";        if (strtotime($last_transaction_date) < strtotime('-30 days')) {            echo "hello";        }        $payment = array(            "MerchantID"=> "0000000001",            "Login"=> "API0000000001",            "Password"=> "Temp1234!",            "NewExpDate"=> "102020",            "Amount"=> "29.99",            "Token"=>$trans_id,            "StandardEntryCode"=> "string",            "AuthOnly"=> false        );                $post_field = json_encode($payment);        // var_dump($post_field);        // die();        $ch = curl_init();        $headers = array(            "Content-type: application/json",            "Cache-Control: no-cache",        );        curl_setopt($ch, CURLOPT_URL,"https://api.securepds.com/2.0/payments.svc/JSON/SubmitTokenPayment");        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS,$post_field);        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                $server_output = curl_exec($ch);        curl_close ($ch);        $payment_id=  json_decode($server_output,true);        $newTransId= new CronJob;        $newTransId->clinic_id = $clinicid;        $newTransId->tranascation_id = $payment_id["Confirmation"];        $newTransId->transaction_date = date('d/m/Y');        $newTransId->save();    }}
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

我想添加一個答案,因為我認為到目前為止的答案對于解決一個簡單的問題來說有點太多了。

$user->updated_at字段是一個 Carbon 日期實例,因此$last_transaction_date也是。Carbon 有一個函數diffInDays()可以給你提供今天和給定日期之間的天數差異。所以對于OP來說,我相信這樣的事情會更簡單。

if( $last_transaction_date->diffInDays() > 30 )
  echo "more than 30 days"


查看完整回答
反對 回復 2023-08-06
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

假設您在 MySQL 和 Php 配置中具有相同的時區和日期格式。下面是可以完成您的工作的代碼片段:


$datetime1 = new DateTime('2020-06-15');

$datetime2 = new DateTime();

$interval = $datetime1->diff($datetime2);

$days_diff = intval($interval->format('%a'));

if($days_diff > 30 ){

    //Do your stuffs

}

DateTime 是處理時區和夏令時的更好方法。


查看完整回答
反對 回復 2023-08-06
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您可以按如下方式使用 Carbon:

if (30 - ((new \Carbon\Carbon($last_transaction_date, 'UTC'))->diffInDays()) < 0) {
    echo "The date is older than 30 days";
}

或者,如果您只想檢查是否是一天的開始,那么使用 Carbon 進行檢查相當容易endOfDay()

if( $last_transaction_date->endOfDay->diffInDays() > 30 ){
   echo "older than 30 days";
}


查看完整回答
反對 回復 2023-08-06
  • 3 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號