လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Date_sub function: သတ်မှတ်ထားသောအချိန်ကိုလက်ရှိရက်စွဲမှမည်သို့နုတ်မည်နည်း

Date_sub function: သတ်မှတ်ထားသောအချိန်ကိုလက်ရှိရက်စွဲမှမည်သို့နုတ်မည်နည်း

gitbox 2025-05-29

PHP တွင်ထုတ်လုပ်ခြင်းရက်စွဲများနှင့်အချိန်များသည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဘုံလုပ်ငန်းများအနက်မှတစ်ခုဖြစ်သည်။ သူတို့ထဲတွင် Date_sub သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကျွန်ုပ်တို့အားသတ်မှတ်ထားသောအချိန်ကြားကာလကို datetime အရာဝတ်ထုမှအလွယ်တကူနှုတ်နိုင်သည်။ ဒီသင်ခန်းစာသည်နေ့, လ, တစ်နှစ်, တစ်နှစ်, တစ်နာရီစသည်ဖြင့်အချိန်အတိအကျကိုနုတ်ရန် Day_sub function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြလိမ့်မည်။

1 ။ dateversuf function ကိုမိတ်ဆက်ခြင်း

Date_sub ဆိုသည်မှာ parameters နှစ်ခုကိုကြာသော built-in function တစ်ခုဖြစ်သည်။

  1. တစ် ဦး datetime အရာဝတ်ထု။

  2. တစ် ဦး ရက်စွဲပါ အရာဝတ်ထု။

အဆိုပါ function ကို datetime office မှရက်ရက်စက်စက်မှ dateinterval မှသတ်မှတ်ထားသောအချိန်ကာလကိုနုတ်ရန်နှင့် datetime အရာဝတ်ထုအသစ်ကိုပြန်ပို့ရန်ဖြစ်သည်။

function ရှေ့ပြေးပုံစံ:

 DateTime date_sub ( DateTime $object , DateInterval $interval )

မှတ်ချက် - PHP 8.0.0, Date_sub () မှစတင်. DEAD_SUB () ကိုကန့်ကွက်သည်။ တူညီသော function ကိုရရှိရန် Datetime :: sub () နည်းလမ်းကိုအသုံးပြုရန်အကြံပြုသည်။

2 ။ အသုံးပြုမှုအဆင့်များအသေးစိတ်ရှင်းလင်းချက်

အဆင့် 1: Datetime အရာဝတ်ထုတစ်ခုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်လက်ရှိအချိန်တွင်ကိုယ်စားပြုသည့် datetime အရာဝတ်ထုတစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။

 $date = new DateTime(); // လက်ရှိနေ့စွဲနှင့်အချိန်

အဆင့် 2: ရက်စွဲပါအရာဝတ်ထုတစ်ခုကိုဖန်တီးပါ

ထို့နောက်အချိန်ကြားကာလအရာဝတ်ထုကိုဖန်တီးပါ။ ဥပမာအားဖြင့် 10 ရက်နုတ်ချင်ကြတယ်။

 $interval = new DateInterval('P10D'); // P Express ကာလ,D နေ့ကနေ့

ဥပမာအားဖြင့် ရက်စွဲပါသည့် ပုံစံသည် ISO 8601 ဖြစ်သည်။

  • 'P2Y' : 2 နှစ်

  • 'P3M' : 3 လ

  • 'P15D' : 15 ရက်

  • 'PT5H' : 5 နာရီ

  • 'PT30M' : မိနစ် 30

အဆင့် 3 - နုတ်ခြင်းစစ်ဆင်ရေးအတွက် sub နည်းလမ်းကိုခေါ်ပါ

နုတ်ခြင်းစစ်ဆင်ရေးအတွက် datetimesub () နည်းလမ်းကိုအသုံးပြုရန်အကြံပြုသည်။

 $date->sub($interval);

အဆင့် 4: ရလဒ်များကို format နှင့် output ကို

နောက်ဆုံးအကြိမ် 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');
?>

3 ။ လျှောက်လွှာအခြေအနေများဥပမာ

1 ။ ဖြစ်ရပ်တစ်ခုမတိုင်မီရက်စွဲများ n ရက်ပေါင်းတွက်ချက်

ဥပမာအားဖြင့်, သင်၏ဝက်ဘ်ဆိုက်သည်ဆောင်းပါးတစ်ပုဒ်ထုတ်ဝေသည့်နေ့မတိုင်မီတစ်ပတ်တွင်ပြသရန်လိုအပ်သည်။

 $publishDate = new DateTime('2025-05-28');
$interval = new DateInterval('P7D');
$publishDate->sub($interval);
echo $publishDate->format('Y-m-d');

2 ။ သက်ဆိုင်ရာ link ၏သက်တမ်းကိုအသုံးပြုသူမှတ်ပုံတင်ပြီးနောက်တစ်ပတ်အတွင်းသတ်မှတ်ပါ

 $registerDate = new DateTime();
$interval = new DateInterval('P7D');
$expireDate = clone $registerDate;
$expireDate->add($interval); // မှတ်ပုံတင်ချိန်အဖြစ်မမှန်မကန်အချိန်ကိုသတ်မှတ်ပါ +7မိုးကောင်းကင်
echo "ကျေးဇူးပြု " . $expireDate->format('Y-m-d H:i:s') . " ယခင် activate အကောင့်。";

3 ။ Log ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းလွန်ခဲ့သောလကဒေတာကြားကာလကိုတွက်ချက်ပါ

 $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>";

4 ။ ဘုံအမှားအယွင်းများနှင့်ကြိုတင်ကာကွယ်မှုများ

  1. Time Format အမှား - ရက်စွဲပါသည့် ပုံစံသည် ISO 8601 သတ်မှတ်ချက်ကိုတင်းကြပ်စွာလိုက်နာရမည်ဖြစ်ပြီးကျပန်းရေးသားခြင်းမပြုနိုင်ပါ။

  2. အရာဝတ်ထုရည်ညွှန်းပြ problem နာ - မူရင်း datetime အရာဝတ်ထုကိုတိုက်ရိုက်ပြုပြင်ခြင်းသည်နောက်ဆက်တွဲယုတ္တိဗေဒကိုသက်ရောက်စေပြီးနောက်ဆက်တွဲ ယုတ္တိဗေဒကို အကျိုးသက်ရောက်လိမ့်မည်။

  3. အချိန်ဇုန်ပြ problem နာ - ကိုက်ညီမှုမရှိသောပုံမှန်အချိန်ဇုန်များသည်အချိန်သွေဖည်သွားစေနိုင်သည်။ အချိန်ဇုန်ကိုကိုယ်တိုင်ချမှတ်ရန်အကြံပြုသည်။

 date_default_timezone_set('Asia/Shanghai');

ကောက်ချက်

DateTime နှင့် Dateinterval တို့ပေါင်းစပ်ခြင်းအားဖြင့် PHP သည် developer များကိုအလွန်ပြောင်းလွယ်ပြင်လွယ်သောအချိန်ကွန်ပျူတာစွမ်းဆောင်ရည်များဖြင့်ပေးသည်။ Date_sub () သို့မဟုတ် dateetime :: datetime ::) နည်းလမ်းများအသုံးပြုခြင်းသည်အတော်လေးရိုးရှင်းသော်လည်း၎င်းတို့အားအစွမ်းထက်ပြီးအများစုသည်နိမ့်သောနုတ်ခြင်းလိုအပ်ချက်များနှင့်ကိုက်ညီမှုရှိနိုင်သည်။ နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာလုပ်ဆောင်မှုများ, စာရင်းအင်းများ, မှတ်တမ်းတင်ခြင်း, မှတ်တမ်းတင်ခြင်းစသည်တို့ပါ 0 င်ပါကဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းကိုကျွမ်းကျင်ရန်အလွန်အထောက်အကူပြုလိမ့်မည်။