လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement အတွက် datetime format ကိုဘယ်လိုကိုင်တွယ်ရမလဲ :: Fetchobject

PDostatement အတွက် datetime format ကိုဘယ်လိုကိုင်တွယ်ရမလဲ :: Fetchobject

gitbox 2025-05-12

PHP ၏ PDO ကိုဒေတာဘေ့စ်ကိုအသုံးပြုမည့် PDostatement :: Fetterobjection () method သည်အလွန်အဆင်ပြေသည်, ၎င်းသည် query ကိုအရာဝတ်ထုတစ်ခုသို့တိုက်ရိုက်မြေပုံဆွဲနိုင်သည်။ သို့သော်ဒေတာဘေ့စ်ကွက်လပ်တွင် ( ထိုကဲ့သို့သော datetime , timestamp အမျိုးအစားများ) တွင်ပါ 0 င်သည့်အခါ,

ဤဆောင်းပါးသည် flagjectobject ကို အသုံးပြု. လက်တွေ့ကျသောဥပမာများပေးသည့်အခါဤ dateTime fields များကိုမည်သို့မှန်ကန်စွာကိုင်တွယ်ရမည်ကိုရှင်းပြပါလိမ့်မည်။

နောက်ခံနောက်ခံ

အသုံးပြုသူဇယား အသုံးပြုသူ တစ် ဦး သည်အောက်ပါအတိုင်းဖြစ်သည်ဆိုပါစို့။

 CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    created_at DATETIME NOT NULL
);

အချက်အလက်ထည့်ပါ။

 INSERT INTO users (name, created_at) VALUES ('Alice', '2025-04-27 14:30:00');

အချက်အလက်ရယူရန် FetCObjectObject ကို သုံးပါ။

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject();

echo $user->created_at;
?>

output သည် ပုံမှန် string ကို ဖြစ်သည်။

 2025-04-27 14:30:00

အကယ်. သင်က subject_at တွင်ထည့်သွင်းခြင်း, နုတ်ခြင်းနှင့်အခြားလုပ်ဆောင်မှုများကိုထည့်သွင်းလိုပါက၎င်းကိုသင်ကိုယ်တိုင်အလိုလျမျောပါသော datetime class နှင့်ကိုယ်တိုင်ပြောင်းလဲရန်လိုအပ်သည်။

ရက်စွဲနှင့်အချိန်လယ်ကွင်းများကိုမှန်ကန်စွာကိုင်တွယ်ရန်နည်းလမ်းများ

အဲဒါကိုလျောက်ပတ်စွာကိုင်တွယ်ရန်အသုံးအများဆုံးနည်းလမ်းနှစ်မျိုးရှိသည် -

နည်းလမ်း 1 - လက်ဖြင့်အစားထိုးခြင်း

အရာဝတ်ထုကိုရယူပြီးနောက်တွင်ရက်စွဲကို datetime အရာဝတ်ထုသို့ချက်ချင်းပြောင်းပါ။

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject();

if ($user && isset($user->created_at)) {
    $user->created_at = new DateTime($user->created_at);
}

// ယခု၎င်းကိုတိုက်ရိုက်အသုံးပြုနိုင်သည် DateTime နည်းလမ်း
echo $user->created_at->format('Yခုနှစ်mလdနေ့ H:i:s');
?>

ဤနည်းလမ်းသည်ရိုးရှင်းသော်လည်း အချိန်တိုင်းတွင်လက်ဖြင့်ပြောင်းလဲရန်လိုအပ်သည် ။ စားပွဲတင်ဖွဲ့စည်းပုံသည်ရှုပ်ထွေးမှုသို့မဟုတ်နယ်ပယ်များစွာရှိလျှင်ပြုပြင်ထိန်းသိမ်းမှုကုန်ကျစရိတ်တိုးလာလိမ့်မည်။

နည်းလမ်း 2. စိတ်ကြိုက် entity အတန်းကိုသုံးပါ (အကြံပြုသည်)

Entity Class ကိုဖန်တီးပါ, သက်ဆိုင်ရာ attribute type အမျိုးအစားကိုသတ်မှတ်ပါ။

 <?php
class User
{
    public int $id;
    public string $name;
    public DateTime $created_at;

    public function __construct()
    {
        // မူရင်း string ကိုထည့်သွင်းရန်လိုအပ်သည် created_at ကူးပြောင်း DateTime ကန့်ကွက်
        if (is_string($this->created_at)) {
            $this->created_at = new DateTime($this->created_at);
        }
    }
}
?>

FetchOccoP ကို အသုံးပြုသည့်အခါအတန်းအမည်ကိုသတ်မှတ်ပါ -

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject(User::class);

echo $user->created_at->format('Y-m-d H:i:s');
?>

ဤသို့ပြုလုပ်ခြင်း၏အကျိုးကျေးဇူးများမှာ -

  • အဆိုပါကုဒ်ရှင်းလင်းဖြစ်ပါတယ်

  • ပျောက်ဆုံးသောလယ်ပြင်အပြောင်းအလဲကိုရှောင်ကြဉ်ပါ

  • အရာဝတ်ထုဖွဲ့စည်းပုံသည်ပိုမိုစံနှုန်းများကိုအလိုအလျောက်ပြည့်စုံစေရန်ပိုမိုလွယ်ကူစေသည်

  • ပိုကြီးတဲ့စီမံကိန်းများသို့မဟုတ်ရေရှည်ပြုပြင်ထိန်းသိမ်းမှုများအတွက်သင့်လျော်သော

မှတ်သားရန်အရာ

အကယ်. သင်၏ PHP ဗားရှင်းက၎င်းကိုအထောက်အကူပြုပါက Php 8.0 တွင် PHP 8.0 တွင်စတင်မိတ်ဆက်ခဲ့သောဆောက်လုပ်ရေးအိမ်ခြံမြေမြှင့်တင်ရေးအစီအစဉ်များကိုပေါင်းစပ်ထားသည့် အိမ်ခြံမြေဆိုင်ရာကြေညာချက်များကို ပေါင်းစပ်နိုင်သည်။

တစ်ချိန်တည်းမှာပင် Database မှပြန်လာသောကွက်လပ်ပုံစံသည် ISO စံ ( Yyyy-MM-DD HH: MM: MM: SS ) သည် Datetime ပျက်ကွက်မှုကိုရှောင်ရှားရန်သေချာစေပါ။

အကျဉ်းချုပ်

PDostatement :: FetchOccess (),) , နေ့စွဲနှင့်အချိန်ကုန်ဆုံးသောနေ့ရက်များကိုတိုက်ရိုက်ပြန်ရောက်သည့်အချိန်သည် string တစ်ခုဖြစ်သည်။ အကယ်. သင်သည်ကြော့ရှင်းသောကုသမှုကိုလိုအပ်လျှင်၎င်းကိုအကြံပြုသည်။

  • သေးငယ်တဲ့ပစ္စည်းများကိုဖယ်ရှားပြီးနောက် dateTime မှတစ် ဦး datetime မှပြောင်းလဲနိုင်ပါတယ်

  • ကြီးမားသောစီမံကိန်းများသို့မဟုတ်စံချိန်စံညွှန်းဖွံ့ဖြိုးရေးဖွံ့ဖြိုးတိုးတက်မှုတွင် Custom entity အတန်းများကိုအသုံးပြုရန်အထူးအကြံပြုလိုပါသည်။

entity အတန်းများကိုဒီဇိုင်းရေးဆွဲခြင်းအားဖြင့်ကုဒ်၏ကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းမှုကိုများစွာတိုးတက်စေနိုင်သည်။

PDO အသုံးပြုမှုအကြံပေးချက်များအကြောင်းပိုမိုသိလိုပါက တရားဝင်စာရွက်စာတမ်းများကို သင်ရည်ညွှန်းနိုင်သည်။