PHP တွင်ထုတ်လုပ်ခြင်းရက်စွဲများနှင့်အချိန်များသည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဘုံလုပ်ငန်းများအနက်မှတစ်ခုဖြစ်သည်။ သူတို့ထဲတွင် Date_sub သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကျွန်ုပ်တို့အားသတ်မှတ်ထားသောအချိန်ကြားကာလကို datetime အရာဝတ်ထုမှအလွယ်တကူနှုတ်နိုင်သည်။ ဒီသင်ခန်းစာသည်နေ့, လ, တစ်နှစ်, တစ်နှစ်, တစ်နာရီစသည်ဖြင့်အချိန်အတိအကျကိုနုတ်ရန် Day_sub function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြလိမ့်မည်။
Date_sub ဆိုသည်မှာ parameters နှစ်ခုကိုကြာသော built-in function တစ်ခုဖြစ်သည်။
တစ် ဦး datetime အရာဝတ်ထု။
တစ် ဦး ရက်စွဲပါ အရာဝတ်ထု။
အဆိုပါ function ကို datetime office မှရက်ရက်စက်စက်မှ dateinterval မှသတ်မှတ်ထားသောအချိန်ကာလကိုနုတ်ရန်နှင့် datetime အရာဝတ်ထုအသစ်ကိုပြန်ပို့ရန်ဖြစ်သည်။
function ရှေ့ပြေးပုံစံ:
DateTime date_sub ( DateTime $object , DateInterval $interval )
မှတ်ချက် - PHP 8.0.0, Date_sub () မှစတင်. DEAD_SUB () ကိုကန့်ကွက်သည်။ တူညီသော function ကိုရရှိရန် Datetime :: sub () နည်းလမ်းကိုအသုံးပြုရန်အကြံပြုသည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်လက်ရှိအချိန်တွင်ကိုယ်စားပြုသည့် datetime အရာဝတ်ထုတစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။
$date = new DateTime(); // လက်ရှိနေ့စွဲနှင့်အချိန်
ထို့နောက်အချိန်ကြားကာလအရာဝတ်ထုကိုဖန်တီးပါ။ ဥပမာအားဖြင့် 10 ရက်နုတ်ချင်ကြတယ်။
$interval = new DateInterval('P10D'); // P Express ကာလ,D နေ့ကနေ့
ဥပမာအားဖြင့် ရက်စွဲပါသည့် ပုံစံသည် ISO 8601 ဖြစ်သည်။
'P2Y' : 2 နှစ်
'P3M' : 3 လ
'P15D' : 15 ရက်
'PT5H' : 5 နာရီ
'PT30M' : မိနစ် 30
နုတ်ခြင်းစစ်ဆင်ရေးအတွက် datetime ၏ sub () နည်းလမ်းကိုအသုံးပြုရန်အကြံပြုသည်။
$date->sub($interval);
နောက်ဆုံးအကြိမ် output လုပ်ရန် format () နည်းလမ်းကိုသုံးနိုင်သည်။
echo $date->format('Y-m-d H:i:s');
<?php
// လက်ရှိနေ့စွဲနှင့်အချိန်
$date = new DateTime();
// အချိန်ကြားကာလတစ်ခုဖန်တီးပါ,ဥပမာအားဖြင့်နုတ်ပါ 10 မိုးကောင်းကင်
$interval = new DateInterval('P10D');
// ဒီကြားကာလကိုရက်စွဲကနေနုတ်ပါ
$date->sub($interval);
// ရလဒ်ရလဒ်
echo "10 မိုးကောင်းကင်前的日期是:" . $date->format('Y-m-d H:i:s');
?>
ဥပမာအားဖြင့်, သင်၏ဝက်ဘ်ဆိုက်သည်ဆောင်းပါးတစ်ပုဒ်ထုတ်ဝေသည့်နေ့မတိုင်မီတစ်ပတ်တွင်ပြသရန်လိုအပ်သည်။
$publishDate = new DateTime('2025-05-28');
$interval = new DateInterval('P7D');
$publishDate->sub($interval);
echo $publishDate->format('Y-m-d');
$registerDate = new DateTime();
$interval = new DateInterval('P7D');
$expireDate = clone $registerDate;
$expireDate->add($interval); // မှတ်ပုံတင်ချိန်အဖြစ်မမှန်မကန်အချိန်ကိုသတ်မှတ်ပါ +7မိုးကောင်းကင်
echo "ကျေးဇူးပြု " . $expireDate->format('Y-m-d H:i:s') . " ယခင် activate အကောင့်。";
$now = new DateTime();
$interval = new DateInterval('P1M');
$lastMonth = clone $now;
$lastMonth->sub($interval);
// ဥပမာအားဖြင့်, သင်၌စာရင်းအင်းစာမျက်နှာသို့လည်ပတ်ရန်ရှိသည်
$url = "https://gitbox.net/logs/view?start=" . $lastMonth->format('Y-m-d') . "&end=" . $now->format('Y-m-d');
echo "လွန်ခဲ့သောလအတွက် Access Logs ကိုကြည့်ပါ:<a href='$url'>$url</a>";
Time Format အမှား - ရက်စွဲပါသည့် ပုံစံသည် ISO 8601 သတ်မှတ်ချက်ကိုတင်းကြပ်စွာလိုက်နာရမည်ဖြစ်ပြီးကျပန်းရေးသားခြင်းမပြုနိုင်ပါ။
အရာဝတ်ထုရည်ညွှန်းပြ problem နာ - မူရင်း datetime အရာဝတ်ထုကိုတိုက်ရိုက်ပြုပြင်ခြင်းသည်နောက်ဆက်တွဲယုတ္တိဗေဒကိုသက်ရောက်စေပြီးနောက်ဆက်တွဲ ယုတ္တိဗေဒကို အကျိုးသက်ရောက်လိမ့်မည်။
အချိန်ဇုန်ပြ problem နာ - ကိုက်ညီမှုမရှိသောပုံမှန်အချိန်ဇုန်များသည်အချိန်သွေဖည်သွားစေနိုင်သည်။ အချိန်ဇုန်ကိုကိုယ်တိုင်ချမှတ်ရန်အကြံပြုသည်။
date_default_timezone_set('Asia/Shanghai');
DateTime နှင့် Dateinterval တို့ပေါင်းစပ်ခြင်းအားဖြင့် PHP သည် developer များကိုအလွန်ပြောင်းလွယ်ပြင်လွယ်သောအချိန်ကွန်ပျူတာစွမ်းဆောင်ရည်များဖြင့်ပေးသည်။ Date_sub () သို့မဟုတ် dateetime :: datetime ::) နည်းလမ်းများအသုံးပြုခြင်းသည်အတော်လေးရိုးရှင်းသော်လည်း၎င်းတို့အားအစွမ်းထက်ပြီးအများစုသည်နိမ့်သောနုတ်ခြင်းလိုအပ်ချက်များနှင့်ကိုက်ညီမှုရှိနိုင်သည်။ နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာလုပ်ဆောင်မှုများ, စာရင်းအင်းများ, မှတ်တမ်းတင်ခြင်း, မှတ်တမ်းတင်ခြင်းစသည်တို့ပါ 0 င်ပါကဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းကိုကျွမ်းကျင်ရန်အလွန်အထောက်အကူပြုလိမ့်မည်။