ข้ามไปที่เนื้อหาหลัก

การเขียนโปรแกรม PHP เพื่อดึงค่าเวลาออกจากวันที่ที่มีเวลาต่อท้ายด้วยฟังก์ชั่น explode(), strrchar(), substr()

          บางครั้งอาจจะมีงานที่ต้องการให้เราเขียนโปรแกรมแสดงวันที่บนหน้าเว็บเพจ หรือให้เขียนโปรแกรมแสดงเวลาปัจจุบัน หรือเวลาที่ทำรายการบนหน้าเว็บไซต์ หรือหน้ารายงานต่างๆ ซึ่งวิธีการปกติที่ผมใช้คือการแยกข้อความ เพื่อแยกวันที่ออกจากเวลาด้วยช่องว่าง จากนั้นก็จะได้อาร์เรย์ไปใช้งานต่อไป


วิธีที่ 1 ใช้ฟังก์ชั่น explode() ซึ่งจะคืนค่ากลับมาเป็นอาร์เรย์ เราก็จะต้องสร้างตัวแปรรับค่าและเมื่อจะเรียกใช้ข้อมูลในตัวแปรก็จะใช้การอ้างอิงตัวเลขลำดับที่ได้จากการแยกข้อความ

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>ทดสอบฟังก์ชั่น PHP แยกคำที่ต้องการ ออกจากข้อความทั้งหมดแบบมีตัวคั่น ด้วยฟังก์ชั่น explode()</title>
</head>
<body>
<?php
$date = '2014-06-21 13:40:31';

$dataArray = explode(' ', $date);

echo "เวลา คือ ", $dataArray[1];
?>
</body>
</html>


จากโค๊ดด้านบนผมได้สร้างตัวแปรรับค่าอาร์เรย์ชื่อ $dataArray ซึ่งจะเก็บข้อมูลวันที่ในลำดับ [0] และเก็บเวลาไว้ที่ลำดับ [1] ดังนั้นถ้าจะแสดงเวลาก็ให้เรียกใช้ $dataArray[1]



วิธีที่ 2 ใช้ฟังก์ชั่น strrchar() จะคืนค่าออกมาเป็นสตริง คือสามารถเรียกใช้ได้เลยโดยไม่ต้องสร้างตัวแปรรับค่าก็ได้ (การสร้างตัวแปรควรจะใช้เฉพาะกรณีเรียกใช้ในอีกหลายๆที่ หรือใช้รับค่าอาร์เรย์เท่านั้น) เพียงแค่เราระบุคำที่ต้องการใช้แยกข้อความออกจากกัน เราก็จะได้ข้อความทั้งหมดที่อยู่จากคำที่กำหนดทันที

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>ทดสอบฟังก์ชั่น PHP แยกคำที่ต้องการ ออกจากข้อความทั้งหมดแบบมีตัวคั่น ด้วยฟังก์ชั่น strrchr()</title>
</head>
<body>
<?php
$date = '2014-06-21 13:40:31';

$time = strrchr($date, ' ');

echo "เวลา คือ ", $time;
?>
</body>
</html>
จากโค๊ดด้านบนผมได้สร้างตัวแปร $time รับค่าที่คืนกลับมาจากฟังก์ชั่น strrchar() ซึ่งคำที่กำหนดคือช่องว่าง ดังนั้นก็จะได้ข้อความทั้งหมดที่อยู่ถัดจากช่องว่าง นั่นก็คือ เวลาที่ต้องการนั่นเอง



แบบที่ 3 เป็นการตัดข้อความโดยนับตำแหน่งที่ต้องการด้วย substr() ซึ่งฟังก์ชั่นนี้เหมาะกับข้อความที่มีขนาดคงที่นับจำนวนได้เท่ากันตลอดไม่เปลี่ยนแปลง เช่นวันเวลา "yyyy-mm-dd hh:mm:ss" ซึ่งนับจำนวนแล้วจะมีความยาว 19 ตัวอักษรไม่เปลี่ยนแปลง

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>ทดสอบฟังก์ชั่น PHP แยกคำที่ต้องการ ออกจากข้อความทั้งหมด ด้วยการตัดคำโดยใช้ฟังก์ชั่น substr()</title>
</head>
<body>
<?php
$date = '2014-06-21 13:40:31';

$time = substr($date, 11);

echo "เวลา คือ ", $time;
?>
</body>
</html>
จากโค๊ดด้านบนตัวแปร $time จะเก็บข้อมูลจากการตัดข้อความตำแหน่งที่ 11 เป็นต้นไป นั่นก็คือ ส่วนที่อยู่ต่อจากวันที่ "2014-06-21 " ที่นับรวมช่องว่างคือ 11 ตัว ก็จะได้ค่า 13:40:31 ที่เริ่มตั้งแต่ตำแหน่งที่ 12 เป็นต้นไป



สรุปต่อท้ายอีกนิด

กรณีที่ต้องการแยกข้อมูล วันและเวลา และนำไปใช้ทั้ง 2 ค่าแนะนำให้ใช้ explode ซึ่งจะได้อาร์เรย์ลำดับที่ [0] และ [1] ไปใช้งานได้ทันที

แต่ถ้าต้องการแค่เวลา ก็ใช้ strrchar() หรือ substr() ก็ได้ตามแต่สะดวก

แล้วถ้าต้องการแค่วันที่อย่างเดียวล่ะ ก็ใช้การตัดข้อความโดยเริ่มจากตำแหน่ง 0 ไปอีกเท่ากับตำแหน่งสุดท้ายก็คือวันที่ ก่อนช่องว่างในที่นี้คือ substr($date, 0, 10) ก็จะได้วันที่มาใช้งาน



และสุดท้ายเรื่องของตัวแปร
$dataArray = explode(' ', $date);
และ
$time = strrchr($date, ' ');

การสร้างตัวแปรรับค่าก่อนที่จะนำไปแสดงผลนั้น บ้างก็ว่าไม่จำเป็นใช้หน่วยความจำโดยไม่จำเป็น บ้างก็ว่าเพื่อความสวยงามของโค๊ด ผมมีหลักพิจารณาง่ายๆว่าจะใช้ตัวแปรเมื่อไหร่ ดังนี้
        1) เมื่อต้องนำไปใช้ต่อในอีกหลายๆที่ ควรประกาศตัวแปร
        2) เมื่อต้องการรับค่าจากอาร์เรย์ จำเป็นจะต้องมีตัวแปรรับค่าก่อน


 แต่ถ้าต้องการแสดงผลทันทีจะสั่ง echo strrchr($date, ' '); ฟังก์ชั่นไปเลยโดยไม่ต้องมีตัวแปร $time มารับค่าก่อนก็ย่อมได้




PHP CI MANIA PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://fastcoding.phpcodemania.com

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สร้างแบบฟอร์มล็อกอิน HTML + PHP

       ผมจะสร้างระบบตัวอย่างเพื่อแสดงให้เห็นการทำงานของสคริปต์ PHP ที่ใช้ในการล็อกอินอย่างง่ายๆ นะครับ โดยที่ผมจะสร้างโฟลเดอร์ใหม่ขึ้นในไดร์ฟที่เราได้กำหนดให้เป็น Directory Root สำหรับรันสคริปต์ PHP ซึ่งผมกำหนดเอาไว้ที่ D:\www ดังนั้นผมจะสร้างโฟลเดอร์ teacher_assistant ขึ้นมาใหม่จะได้พาธเป็น D:\www\teacher_assistant สำหรับการเข้าถึง จะใช้ URL ดังนี้ http://localhost/teacher_assistant หลังจากสร้างโฟลเดอร์เสร็จเรียบร้อยก็จะเริ่มกระบวนการเตรียมโครงสร้างโปรเจ็กต์ด้วยเครื่องมือช่วยเขียนโปรแกรมชื่อว่า eclipse ซึ่งดูวิธีการสร้างโปรเจ็กต์ได้จากบทความ เริ่มต้นสร้างโปรเจ็กต์ ด้วยโปรแกรม eclipse เครื่องมือเขียนโปรแกรม php ในบทความเป็นการสร้างโปรเจ็กต์ที่มีพาธเป็นโฟลเดอร์ login แต่ในที่นี้ต้องเป็นพาธให้ตรงกับโฟลเดอร์ใหม่ที่เราได้สร้างขึ้นด้วยนะครับ

PHP กับการคิดส่วนลดเป็นเปอร์เซ็น 5%, 10%, 20% ตามช่วงราคาที่กำหนด

<?php     $total_price = 1000;     $discount = 0;         if($total_price >= 500 && $total_price < 1001){         $discount = 5;     }elseif($total_price >= 1001 && $total_price <= 5000){         $discount = 10;     }elseif($total_price >= 5001){         $discount = 20;     }         $discount_bath = ($total_price*$discount)/100; ?> <pre> ซื้อสินค้าครบ 0 ถึง 499 บาท ไม่ได้ส่วนลด ซื้อสินค้าครบ 500 ถึง 1000 บาท ได้ส่วนลด 5% ซื้อสินค้าครบ 1001 ถึง 5000บาท ได้ส่วนลด 10% ซื้อสินค้าครบ 5001 บาทขึ้นไป ได้ส่วนลด 20% </pre> <h3>รวมราคาสินค้า = <?php echo number_format($total_price,2);?></h3> <h5>ส่วนลด = <?php echo $discount;?>%  (<?php echo $discount_bath;?> บาท)</h5> <h2>ราคาหลังส่วนลด = <?php echo number_format($total_price - $discount_bath,2);?>บาท</h2> "PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต