|
|
|
คำนวณอายุ ของข้อมูลที่อยู่ในรูปแบบของปี พ.ศ. ได้อย่างไรคะ |
|
|
|
|
|
|
|
ข้อมูลที่เก็บและประมวลผลทั้งหมด ควรเป็นปี ค.ศ. เพราะระบบคอมพิวเตอร์เขียนโดยใช้ปีแบบนี้เป็นหลัก ดังนั้นเราพึ่งพาของเขาก็ต้องทำตามเขา
การเก็บเป็น พ.ศ. ทำให้ต้องแปลงกลับมาเป็น ค.ศ.เพื่อคำณวน, ประมวลผล แล้วแปลงกลับอีกทีเพื่อแสดงผล วุ่นวาย!!
พ.ศ. ควรเอาไว้แสดงผลเท่านั้น.
ถ้าจะดันใช้แบบที่คุณเขียนต่อไป ลองคิดตามผมอธิบายข้างบนว่ามันจะวกไปวนมาวุ่นทวีคูณตามจำนวนงานมากขนาดไหน แล้วจะคุ้มไหม? คิดเอา
|
|
|
|
|
Date :
2023-09-15 21:16:14 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
function th_con_en($bDay)
{
//22-11-2543 to 2000-11-22
$date_recent = substr("$bDay", 0, 2); // substr() ฟังก์ชันสำหรับตัดส่วนหนึ่งของข้อความออกจากสตริง โดยระบุตำแหน่งเริ่มต้นและความยาวของข้อความที่ต้องการตัด
$month_recent = substr("$bDay", 3, 2);
$year_recent = substr("$bDay", 6, 4) - 543; // แปลงปีพุทธศักราชเป็นปีคริสตศักราชโดยลบ 543
$date_recent_box = "$year_recent" . "-$month_recent" . "-$date_recent";
return $date_recent_box;
}
// กำหนดวันที่เกิด
$days = '30/01/2536';
// แปลงวันที่เกิดเป็น DateTime
$dob = new DateTime(th_con_en($days));
// กำหนดวันที่ปัจจุบัน
$today = new DateTime();
// คำนวณอายุ
$age = $today->diff($dob)->y;
// แสดงผลอายุ
echo "อายุของคุณคือ $age ปี";
|
ประวัติการแก้ไข 2023-09-30 21:41:05 2023-09-30 21:42:44
|
|
|
|
Date :
2023-09-30 21:40:11 |
By :
kaidohjung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (SQL)
Select
TIMESTAMPDIFF (YEAR,DATE_SUB(STR_TO_DATE('30/01/2536', '%d/%m/%Y'), INTERVAL 543 YEAR), now()) as _year
, TIMESTAMPDIFF (MONTH,DATE_SUB(STR_TO_DATE('30/01/2536', '%d/%m/%Y'), INTERVAL 543 YEAR), now()) % 12 as _month
, TIMESTAMPDIFF( DAY, TIMESTAMPADD(MONTH, TIMESTAMPDIFF(MONTH, DATE_SUB(STR_TO_DATE('30/01/2536', '%d/%m/%Y'), INTERVAL 543 YEAR), now()), DATE_SUB(STR_TO_DATE('30/01/2536', '%d/%m/%Y'), INTERVAL 543 YEAR)), now()) as _day
;
|
|
|
|
|
Date :
2023-10-04 13:07:38 |
By :
Bo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|