สวัสดีครับท่านผู้อ่านทุกๆท่าน สำหรับบทความนี้ต่อเนื่องมาจากบทความที่แล้วในเรื่อง ความรู้ทั่วไป : เรื่องของระบบวันเวลา นะครับอย่างไรก็ติดตามดูย้อนหลังกันได้นะครับจะได้มีพื้นฐานเรื่องระบบวันเวลามาก่อน สำหรับในภาษา PHP นั้นก็จะมีฟังก์ชั่นเกี่ยวกับวันเวลาตามตารางข้างล่างเลยครับ
ตารางแสดงฟังก์ชั่นเกี่ยวกับวันเวลาใน PHP
ฟังก์ชั่น
|
การใช้งาน
|
---|---|
ตรวจสอบข้อมูลวันที่
| |
ตรวจสอบ default time zone
| |
ตั้งค่า default time zone
| |
แสดงเวลาพระอาทิตย์ขึ้น
| |
แสดงเวลาพระอาทิตย์ตก
| |
แสดงค่าวันที่และเวลา
| |
แสดงรายละเอียดของวันที่และเวลา
| |
แสดงค่าเวลาปัจจุบันเทียบกับวันที่ 1 มกราคม ค.ศ.1970
| |
แสดงวันเวลาตามมาตรฐาน GMT
| |
สร้างวันเวลาตามมาตรฐาน GMT
| |
แสดงค่าวันเวลาตามมาตรฐาน GMT/UTC
| |
แสดงค่าวันที่และเวลาบนอินเตอร์เน็ต
| |
แสดงค่าวันเวลาท้องถิ่น
| |
แสดงค่าเวลาปัจจุบันแบบไมโครวินาทีและวินาที
| |
แสดงวันเวลาตามค่าที่กำหนด
| |
กำหนดรูปแบบการแสดงวันเวลาท้องถิ่น
| |
แปลงค่าวันเวลาจากเวลาท้องถิ่น
| |
แปลงค่าสตริงเป็นเวลา timestamp
| |
แสดงค่าเวลาปัจจุบันเป็นแบบ timestamp
|
รูปแบบการใช้งานฟังก์ชั่นต่างๆ
- checkdate() ตรวจสอบข้อมูลวันที่
มีรูปแบบดังนี้ checkdate(month,day,year)
ตัวอย่าง
ผลลัพธ์คือ
bool(true) //แสดงว่าวันที่มีรูปแบบที่ถูกต้อง
bool(false) //แสดงว่ามีรูปแบบที่ผิดคือเดือน มกราคม มีแค่ 31 วันแต่เราใส่วันที่ 35 จึงผิด
bool(false) //ไม่ถูกต้องเพราะปี ค.ศ. 2009 เดือนกุมภาพันธ์มี 28 วัน
Parameter | Description |
---|---|
month | ค่าของเดือน มีค่าตั้งแต่ 1 - 12 |
day | ค่าของวันที่ มีค่าตั้งแต่ 1 - 31 |
year | ค่าของปี ค.ศ. มีค่าตั้งแต่ 0 - 32767 |
ตัวอย่าง
<?php var_dump(checkdate(11,26,1988)); echo("<br>"); var_dump(checkdate(1,35,2012)); echo("<br>"); var_dump(checkdate(2,29,2009)); ?>
ผลลัพธ์คือ
bool(true) //แสดงว่าวันที่มีรูปแบบที่ถูกต้อง
bool(false) //แสดงว่ามีรูปแบบที่ผิดคือเดือน มกราคม มีแค่ 31 วันแต่เราใส่วันที่ 35 จึงผิด
bool(false) //ไม่ถูกต้องเพราะปี ค.ศ. 2009 เดือนกุมภาพันธ์มี 28 วัน
- date_default_timezone_get() ตรวจสอบ default time zone
มีรูปแบบดังนี้ date_default_timezone_get()
ตัวอย่าง
<?php echo(date_default_timezone_get()); ?>
ผลลัพธ์
Asia/Bangkok
- date_default_timezone_set() ตั้งค่า default time zone
มีรูปแบบดังนี้ date_default_timezone_set(timezone)
Parameter | Description |
---|---|
timezone | เขต Timezone สามารถตรวจสอบได้ที่ : http://www.php.net/manual/en/timezones.php |
- date_sunrise() แสดงเวลาพระอาทิตย์ขึ้น
มีรูปแบบดังนี้ date_sunrise(timestamp,format,latitude,longitude,zenith,gmt_offset)
Parameter | Description |
---|---|
timestamp | ค่า Timestamp |
format | มีให้เลือก 3 รูปแบบ คือ
|
latitude | ตำแหน่งละติจูดที่ต้องการทราบค่า |
longitude | ตำแหน่งลองจิจูดที่ต้องการทราบค่า |
zenith | ค่า gmt_offset มีหน่วยเป็น ชั่วโมง |
gmt_offset | ค่าเวลา GMT ที่ห่างจากเมืองกรีนิช |
- date_sunset() แสดงเวลาพระอาทิตย์ตก
มีรูปแบบดังนี้ date_sunset(timestamp,format,latitude,longitude,zenith,gmt_offset)
ตัวอย่างจากทั้งฟังก์ชั่น date_sunrise() และ date_sunset()
ผลลัพธ์คือ
วันที่ 09-08-2012
พระอาทิตย์ขึ้นที่ผาชนะได อ.โขงเจียม จ.อุบลราชธานี เวลา : 05:45
พระอาทิตย์ตกที่แหลมพรหมเทพ อ.เมือง จ.ภูเก็ต เวลา : 18:42
Parameter | Description |
---|---|
timestamp | ค่า Timestamp |
format | มีให้เลือก 3 รูปแบบ คือ
|
latitude | ตำแหน่งละติจูดที่ต้องการตั้งค่า |
longitude | ตำแหน่งลองจิจูดที่ต้องการตั้งค่า |
zenith | ค่า gmt_offset มีหน่วยเป็น ชั่วโมง |
gmt_offset | ค่าเวลา GMT ที่ห่างจากเมืองกรีนิช |
ตัวอย่างจากทั้งฟังก์ชั่น date_sunrise() และ date_sunset()
<?php echo("วันที่ " . date('d-m-Y') . "<br><br>พระอาทิตย์ขึ้นที่ผาชนะได อ.โขงเจียม จ.อุบลราชธานี เวลา : " .date_sunrise(time(),SUNFUNCS_RET_STRING,15.37,105.37,90,+7-24) . "<br><br>"); echo("พระอาทิตย์ตกที่แหลมพรหมเทพ อ.เมือง จ.ภูเก็ต เวลา : " .date_sunset(time(),SUNFUNCS_RET_STRING,7.46,98.19,90,+7)); ?>
ผลลัพธ์คือ
วันที่ 09-08-2012
พระอาทิตย์ขึ้นที่ผาชนะได อ.โขงเจียม จ.อุบลราชธานี เวลา : 05:45
พระอาทิตย์ตกที่แหลมพรหมเทพ อ.เมือง จ.ภูเก็ต เวลา : 18:42
- date() แสดงค่าวันที่และเวลา
มีรูปแบบดังนี้ date(format,timestamp)
ตัวอย่าง
ผลลัพธ์ :
Thursday
Thursday 09th of August 2012 05:43:01 PM
Oct 3,1975 was on a Friday
Thu, 09 Aug 12 17:43:01 +0700
1975-10-03T00:00:00+07:00
Parameter | Description |
---|---|
format | รูปแบบการแสดงผลมีตัวเลือกต่อไปนี้ อักขระที่ใช้แทน "วัน" และ "สัปดาห์"
อักขระที่ใช้แทน "เดือน"
อักขระที่ใช้แทน "ปี"
อักขระที่ใช้แทน "เวลา"
|
timestamp | ค่าของ Timestamp |
ตัวอย่าง
<?php echo(date("l") . "<br />"); echo(date("l dS \of F Y h:i:s A") . "<br />"); echo("Oct 3,1975 was on a ".date("l", mktime(0,0,0,10,3,1975))."<br />"); echo(date(DATE_RFC822) . "<br />"); echo(date(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "<br /><br />"); ?>
ผลลัพธ์ :
Thursday
Thursday 09th of August 2012 05:43:01 PM
Oct 3,1975 was on a Friday
Thu, 09 Aug 12 17:43:01 +0700
1975-10-03T00:00:00+07:00
- getdate() แสดงรายละเอียดของวันที่และเวลา
มีรูปแบบดังนี้ getdate(timestamp)
ซึ่งจะแสดงผลออกมาเป็นอาเรย์มี Element ดังนี้
[seconds] - วินาที มีค่าตั้งแต่ 0 - 59
[minutes] - นาที มีค่าตั้งแต่ 0 - 59
[hours] - ชั่วโมง มีค่าตั้งแต่ 0 - 23
[mday] - วันที่ในรอบเดือน มีค่าตั้งแต่ 1 - 31
[wday] - วันในรอบสัปดาห์ มีค่าตั้งแต่ 0 - 6
[year] - ปีแบบตัวเลข 4 หลัก
[yday] - วันในรอบปี มีค่าตั้งแต่ 0 - 365
[weekday] - ชื่อเต็มของวันในรอบสัปดาห์
[month] - ชื่อเต็มของเดือน
0 - เวลาของ Timestamp
ซึ่งจะแสดงผลออกมาเป็นอาเรย์มี Element ดังนี้
[seconds] - วินาที มีค่าตั้งแต่ 0 - 59
[minutes] - นาที มีค่าตั้งแต่ 0 - 59
[hours] - ชั่วโมง มีค่าตั้งแต่ 0 - 23
[mday] - วันที่ในรอบเดือน มีค่าตั้งแต่ 1 - 31
[wday] - วันในรอบสัปดาห์ มีค่าตั้งแต่ 0 - 6
[year] - ปีแบบตัวเลข 4 หลัก
[yday] - วันในรอบปี มีค่าตั้งแต่ 0 - 365
[weekday] - ชื่อเต็มของวันในรอบสัปดาห์
[month] - ชื่อเต็มของเดือน
0 - เวลาของ Timestamp
ตัวอย่าง
<?php $my_t=getdate(date("U")); print("$my_t[weekday], $my_t[month] $my_t[mday], $my_t[year]"); ?>
ผลลัพธ์
Thursday, August 9, 2012
- gettimeofday() แสดงค่าเวลาปัจจุบันเทียบกับวันที่ 1 มกราคม ค.ศ.1970
มีรูปแบบดังนี้ gettimeofday(return_float)
ซึ่งจะแสดงผลออกมาเป็นอาเรย์มี Element ดังนี้
[sec] - เวลาในหน่วยวินาที
[usec] - เวลาในหน่วยไมโครวินาที
[minuteswest] - เวลาในหน่วยนาที
[dsttime] - เมื่อมีการใช้เวลาระบบ DST จะเป็น 1 และจะเป็น 0 เมื่อไม่ใช้เวลาในระบบ DST
ซึ่งจะแสดงผลออกมาเป็นอาเรย์มี Element ดังนี้
[sec] - เวลาในหน่วยวินาที
[usec] - เวลาในหน่วยไมโครวินาที
[minuteswest] - เวลาในหน่วยนาที
[dsttime] - เมื่อมีการใช้เวลาระบบ DST จะเป็น 1 และจะเป็น 0 เมื่อไม่ใช้เวลาในระบบ DST
- gmdate() แสดงวันเวลาตามมาตรฐาน GMT
มีรูปแบบดังนี้ gmdate(format,timestamp)
สำหรับ format นั้นดูได้จากเรื่่องของฟังก์ชั่น date()
สำหรับ format นั้นดูได้จากเรื่่องของฟังก์ชั่น date()
- gmmktime() สร้างวันเวลาตามมาตรฐาน GMT
มีรูปแบบดังนี้ gmmktime(hour,minute,second,month,day,year,is_dst)
Parameter | Description |
---|---|
hour | ชั่วโมง |
minute | นาที |
second | วินาที |
month | เดือน |
day | วันที่ |
year | ปี ค.ศ. |
is_dst | ไม่จำเป็นต้องมีก็ได้ : ให้เป็น 1 ถ้าใช้ระบบ daylight savings time (DST) หรือเป็น 0 ถ้าไม่ใช้ระบบ DST หรือ -1 (ค่าเริ่มต้น) ถ้าไม่ทราบว่าใช้ระบบ DST หรือไม่ |
- gmstrftime() แสดงค่าวันเวลาตามมาตรฐาน GMT/UTC
มีรูปแบบดังนี้ gmstrftime(format,timestamp)
สำหรับ format นั้นให้ดูได้จากเรื่องฟังก์ชั่น date() เพียงแต่ใส่ % นำหน้าเช่น
สำหรับ format นั้นให้ดูได้จากเรื่องฟังก์ชั่น date() เพียงแต่ใส่ % นำหน้าเช่น
<?php echo(strftime("%b %d %Y %X", mktime(20,0,0,11,26,88))."<br>"); echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,11,26,88))."<br>"); echo(gmstrftime("It is %a on %b %d, %Y, %X )); ?>
จะแสดงผลได้เป็น
Nov 26 1988 20:00:00
Nov 26 1988 19:00:00
It is Thu on Aug 9, 2012, 16:51:10
- idate() แสดงค่าวันที่และเวลาบนอินเตอร์เน็ต
มีรูปแบบดังนี้ idate(format,timestamp)
สำหรับ format นั้นให้ดูได้จากเรื่องฟังก์ชั่น date()
ตัวอย่าง
จะได้ผลลัพธ์เป็น
2012
สำหรับ format นั้นให้ดูได้จากเรื่องฟังก์ชั่น date()
ตัวอย่าง
<?php echo(idate("Y")); ?>
จะได้ผลลัพธ์เป็น
2012
- localtime() แสดงค่าวันเวลาท้องถิ่น
มีรูปแบบดังนี้ localtime(timestamp,is_associative)
ตัวอย่าง
ได้ผลลัพธ์ดังนี้
Array (
[tm_sec] => 5
[tm_min] => 8
[tm_hour] => 17
[tm_mday] => 9
[tm_mon] => 7
[tm_year] => 112
[tm_wday] => 4
[tm_yday] => 221
[tm_isdst] => 0
)
Parameter | Description |
---|---|
timestamp | เวลา Timestamp |
is_associative | [tm_sec] - วินาที มีค่าตั้งแต่ 0 - 59 [tm_min] - นาที มีค่าตั้งแต่ 0 - 59 [tm_hour] - ชั่วโมง มีค่าตั้งแต่ 0 - 23 [tm_mday] - วันที่ในรอบเดือน มีค่าตั้งแต่ 1 - 31 [tm_mon] - ชื่อเต็มของเดือน [tm_year] - ปีแบบตัวเลข 4 หลัก [tm_wday] - วันในรอบสัปดาห์ มีค่าตั้งแต่ 0 - 6 [tm_yday] - วันในรอบปี มีค่าตั้งแต่ 0 - 365 [tm_isdst] - ชื่อเต็มของวันในรอบสัปดาห์ |
ตัวอย่าง
<?php print_r(localtime(time(),true)); ?>
ได้ผลลัพธ์ดังนี้
Array (
[tm_sec] => 5
[tm_min] => 8
[tm_hour] => 17
[tm_mday] => 9
[tm_mon] => 7
[tm_year] => 112
[tm_wday] => 4
[tm_yday] => 221
[tm_isdst] => 0
)
- microtime() แสดงค่าเวลาปัจจุบันแบบไมโครวินาทีและวินาที
มีรูปแบบดังนี้ microtime()
ตัวอย่าง
ซึ่งจะได้ผลลัพธ์เป็นไมโครไทม์ดังนี้
0.29098200 1344507502
ตัวอย่าง
<?php echo(microtime()); ?>
ซึ่งจะได้ผลลัพธ์เป็นไมโครไทม์ดังนี้
0.29098200 1344507502
- mktime() แสดงวันเวลาตามค่าที่กำหนด
มีรูปแบบดังนี้ mktime(hour,minute,second,month,day,year,is_dst)
ตัวอย่าง
ผลลัพธ์
Feb-08-1988
Nov-26-1988
Jan-01-2001
Jan-01-1999
ตัวอย่าง
<?php echo(date("M-d-Y",mktime(0,0,0,2,8,1988))."<br />"); echo(date("M-d-Y",mktime(0,0,0,11,26,1988))."<br />"); echo(date("M-d-Y",mktime(0,0,0,1,1,2001))."<br />"); echo(date("M-d-Y",mktime(0,0,0,1,1,99))."<br />"); ?>
ผลลัพธ์
Feb-08-1988
Nov-26-1988
Jan-01-2001
Jan-01-1999
- strftime() กำหนดรูปแบบการแสดงวันเวลาท้องถิ่น
มีรูปแบบดังนี้ strftime(date,format)
สำหรับ format ดูได้จากเรื่องของฟังก์ชั่น gmstrftime()
สำหรับ format ดูได้จากเรื่องของฟังก์ชั่น gmstrftime()
- strptime() แปลงค่าวันเวลาจากเวลาท้องถิ่น
มีรูปแบบดังนี้ strptime(date,format)
สำหรับ format ดูได้จากเรื่องของฟังก์ชั่น gmstrftime()
สำหรับ format ดูได้จากเรื่องของฟังก์ชั่น gmstrftime()
- strtotime() แปลงค่าสตริงเป็นเวลา timestamp
มีรูปแบบดังนี้ strtotime(time,now)
ตัวอย่าง
ผลลัพธ์
1344509974
571251600
1344520774
1347533974
1345298378
1344790800
1344099600
ตัวอย่าง
<?php echo(strtotime("now") . "<br />"); echo(strtotime("8 February 1988") . "<br />"); echo(strtotime("+3 hours") . "<br />"); echo(strtotime("+5 week") . "<br />"); echo(strtotime("+1 week 2 days 3 hours 4 seconds") . "<br />"); echo(strtotime("next Monday") . "<br />"); echo(strtotime("last Sunday")); ?>
ผลลัพธ์
1344509974
571251600
1344520774
1347533974
1345298378
1344790800
1344099600
- time() แสดงค่าเวลาปัจจุบันเป็นแบบ timestamp
มีรูปแบบดังนี้ time(void)
ตัวอย่าง
ผลลัพธ์
1344510072
Thu August 09 2012
ตัวอย่าง
<?php $t=time(); echo($t . "<br />"); echo(date("D F d Y",$t)); ?>
ผลลัพธ์
1344510072
Thu August 09 2012
ครับสำหรับบทความนี้กก็จบลงแล้วต่อไปเราจะลองมาใช้ฟังก็ชั่นวันเวลาที่เราเรียนมาวันนี้มาทำปฏิทินกันดูนะครับ โปรดติดตามในบทความต่อไป สวัสดีครับ
หมายเหตุ :
ที่มา : w3schools : php_ref_date.asp
time(void) ใช้ผิดนะคับอาจารย์เป้
ReplyDeleteเพราะตอน void ใช้อันติ ต้องครอบด้วย ( ) ทำให้ time ที่อยู่ภายในหยุด
ดังนั้น จึงเท่ากับ void(time) นะคร๊าบ ~
มาแนว DotA กันเลยทีเดียว ไม่ได้เล่นนานละลืม Skill ไปหมดแล้ว
ReplyDelete