DateTime ผมอยากจะได้รูปแบบคำสั่ง php ที่เกี่ยวกับเวลาครับ ผมอยากได้ code เกี่ยวกับเวลา และการทำงานที่เช็คเรื่องวันเวลา
??? เวลาใน php มีให้เลือกให้หลายรูปแบบครับ
Date :
5 ม.ค. 2548 10:06:12
By :
@W_IN
แบบว่ามันคำนวณกันอย่างไรครับ..
Date :
6 ม.ค. 2548 15:01:14
By :
yumza
การคำนวณ ก็บวกลบ ธรรมดา ครับ
Function date
การอ่านค่าสำหรับบ่งบอกวันเดือนปีและเวลาในปัจจุบัน เราสามารถใช้คำสั่ง date () ตัวอย่างเช่น แสดงวันเดือนปีของวันนี้
รูปแบบ Function date
<?
$today=date("Y-M-d");
?>
<?
$today = date("D d F Y h:i:s");
print "<CENTER>Today is: $today.</CENTER>";
?>
"Y-m-d" หมายถึงสตริงค์ที่กำหนดรูปแบบ (formatted string) ของการแสดงวันที่ ในกรณีนี้คือ ปีค.ศ.-เดือน-วัน ตามลำดับ จริงๆแล้วฟังก์ชัน date() จะต้องการอาร์กิวเมนต์สองตัวคือ สตริงค์ที่กำหนดรูปแบบ เช่น "Y-m-d" และค่าของ TimeStamp (integer) ในหน่วยเป็นวินาที นับตั้งแต่ 1 มกราคม 1970 ในกรณีที่เราไม่ได้กำหนด TimeStamp ก็จะหมายถึง TimeStamp เวลาในปัจจุบัน
ถ้าเราต้องการแสดงทั้งเวลาและวันเดือนปี ก็ต้องกำหนดรูปแบบของสตริงค์ใหม่ เช่น "D d F Y h:i:s"
ซึ่งตัวอักษรแต่ละตัวจะมีความหมายและเป็นตัวบ่งบอกหน้าที่ เช่น d ใช้แทนที่วันในหนึ่งเดือน D ใช้แทนชื่อวันแบบย่อในเจ็ดวัน F ใช้แทนชื่อเดือนในทั้งหมด 12 เดือน Y แทนที่ปีค.ศ. เป็นเลขสี่หลัก
h i s ใช้แทนชั่วโมง นาที และวินาทีตามลำดับ
<?
$today = date("D d F Y h:i:s");
print "<CENTER>Today is: $today.</CENTER>";
?>
สำหรับรายอื่นเพิ่มเติมเกี่ยวกับฟังก์ชัน date() สามารถดูได้จาก PHP manual
Description Function date
a แสดงคำว่า am หรือ pm ในรูปแบบตัวพิมพ์เล็ก
A แสดงคำว่า AM หรือ PM ในรูปแบบตัวพิมพ์ใหญ่
d แสดงวันที่แบบเลข 2 หลัก คือ "01" ถึง "31"
D แสดงชื่อวันภาษาอังกฤษแบบย่อ เช่น "Sun" , "Fri" เป็นต้น
F แสดงชื่อเดือนภาษาอังกฤษเช่น "January"
h แสดงเวลาชั่วโมงแบบ 2 หลัก "01" ถึง "12"
H แสดงเวลาชั่วโมงแบบ 2 หลัก "00" ถึง "23"
g แสดงเวลาชั่วโมงแบบไม่มีเลข 0 นำหน้า "1" ถึง "12"
G แสดงเวลาชั่วโมงแบบไม่มีเลข 0 นำหน้า "0" ถึง "23"
i แสดงเวลานาที "00" ถึง "59"
j แสดงวันที่แบบไม่มีเลข 0 นำหน้า "1" ถึง "31"
l แสดงชื่อวันภาษาอังกฤษแบบเต็ม เช่น "Monday"
L แสดงค่าทางตรรกะ คือ มีค่า 0 หรือ 1 ในปีที่เป็นอธิกมาส
m แสดงเดือนแบบตัวเลขมีเลข 0 นำหน้า "01" ถึง "12"
n แสดงชื่อเดือนภาษาอังกฤษแบบย่อ 3 ตัวอักษร เช่น "Feb"
s แสดงเวลาวินาที "00" ถึง "59"
S แสดงส่วนต่อท้ายของวันที่ เช่น "th", "nd"
t แสดงจำนวนวันใน 1 เดือน
w แสดงตัวเลขของวันใน 1 สัปดาห์ เช่น "0" = Sunday ถึง "6" = Saturday
Y แสดงปี ค.ศ. ตัวเลข 4 หลัก เช่น "1990"
y แสดงปี ค.ศ. ตัวเลข 2 หลัก เช่น "90"
z แสดงลำดับวันใน 1 ปี คือตั้งแต่ "0" ถึง "365"
ตัวอย่าง Function date
<HTML>
<HEAD><TITLE>ตัวอย่างการ Function date</TITLE></HEAD>
<BODY>
<?
$today1=date("Y-M-d");
$today2=date("Y-m-D");
$today3=date("y-M-D");
print "$today1 <br>";
print "$today2 <br>";
print "$today3 <br>";
?>
</BODY>
</HTML>
ผลลัพธ์ที่ได้
2000-Apr-17
2000-04-Mon
00-Apr-Mon
การบวกหรือลบเวลาจากปัจจุบัน
$fullday = date("d M H:i:s", mktime(date("H")[บวก/ลบ][ชม.], date("i")[บวก/ลบ][นาที.]))."";
Sample
<?
$yea = date("Y")+543;
$fullday = date("d M $yea H:i:s", mktime(date("H")+11, date("i")+45)).""; // บวกเวลา 11 ชม. กับ 45 นาที
echo $fullday;
?>
getdate()
<?
&today = getdate();
$month = $today[month];
$mday = $today[mday];
$year = $today[year];
echo "$month $mday, $year";
?>
จาก Code ตัวแปร $today จะเป็นอาเรย์ที่มีสมาชิก
$today[secounds] เก็บค่าวินาที
$today[minutes] เก็บค่านาที
$today[hours] เก็บค่าชั่วโมง
$today[mday] เก็บค่าวันที่
$today[wday] เก็บลำดับของวันใน 1 สัปดาห์ เช่น "0" ถึง "6"
$today[weekday] เก็บชื่อวันในสัปดาห์ เช่น "Friday"
$today[yday] เก็บลำดับของวันใน 1 ปี คือตั้งแต่ "0" ถึง "365"
$today[mon] เก็บค่าเดือน
$today[month] เก็บชื่อเดือนแบบเต็ม เช่น "January"
$today[year] เก็บค่าปี
ลองมาดูวันที่แบบไทย ๆ บ้างครับ
Sample
<?
// ThaiCreate.Com By @W_IN //
$date = date("l");
switch($date)
{
case "Monday":
$printdate = "จันทร์";
break;
case "Tuesday":
$printdate = "อังคาร";
break;
case "Wednesday":
$printdate = "พุธ";
break;
case "Thursday":
$printdate = "พฤหัสบดี";
break;
case "Friday":
$printdate = "ศุกร์";
break;
case "Saturday":
$printdate = "เสาร์";
break;
case "Sunday":
$printdate = "อาทิตย์";
break;
}
$month = date("n");
switch($month)
{
case "1":
$printmonth = "มกราคม";
break;
case "2":
$printmonth = "กุมภาพันธ์";
break;
case "3":
$printmonth = "มีนาคม";
break;
case "4":
$printmonth = "เมษายน";
break;
case "5":
$printmonth = "พฤษภาคม";
break;
case "6":
$printmonth = "มิถุนายน";
break;
case "7":
$printmonth = "กรกฏาคม";
break;
case "8":
$printmonth = "สิงหาคม";
break;
case "9":
$printmonth = "กันยายน";
break;
case "10":
$printmonth = "ตุลาคม";
break;
case "11":
$printmonth = "พฤศจิกายน";
break;
case "12":
$printmonth = "ธันวาคม";
break;
}
echo "$printdate ".date("d")." $printmonth ".(date("Y")+543)."";
?>
Out Put
ศุกร์ 25 มิถุนายน 2547
Date :
7 ม.ค. 2548 02:19:20
By :
arsachi
ขอบคุณครับ เหมือนกับบทเรียนเลย
Date :
7 ม.ค. 2548 14:41:46
By :
yumza
ขอบคุณนะค่ะ ที่จัดทำรายละเอียดได้ดีมากเลย
Date :
26 มิ.ย. 2550 18:48:49
By :
ฝัน
ขอบคุงมากค่ะ ดีจัยที่คนคิดเก่งค่ะช่วยเขียนเว็บได้เยอะ
Date :
19 ก.ย. 2550 00:05:55
By :
piano
ขอบคุณ
Date :
2 มี.ค. 2551 16:06:01
By :
เด้ก
Thank you.
Date :
2011-01-10 14:25:11
By :
coolman
ขอบคุณมากเลยครับ..อธิบายได้ละเอียดมากเลยครับ...มีประโยชน์มากเลยครับ..
Date :
2011-03-18 18:13:14
By :
ดิว
หากผมจะบอกว่าให้กระทำคำสั่งนี้ในอีก 5 วินาทีถัดไปจะเขียนยังไง
เช่น หลังจากกด ok แล้วให้มันแสดงค่า m ที่ browser และเปลี่ยนเป็นตัว a ใน
5 วินาทีถัดไปหลังจากเรากด ok ช่วยแนะนำหน่อยครับ มันคล้าย while แต่ผม
แต่ while มันเขียนวนเองแต่เราไม่สามารถระบุช่วงเวลาได้ครับ ใครช่วยแนะนำหน่อย
Date :
2012-05-17 23:49:09
By :
velona
Load balance : Server 01