|
|
|
สอบถามเรื่องเงื่อนไข การแสดงวันที่แบบเดียวกับ facebook คับ |
|
|
|
|
|
|
|
ประเด็นก็คือ ก่อนหน้า 3 นาทีนั้น เขาต้องการจะให้แสดงคำว่า "เมื่อสักครู" หรือ "ไม่กี่นาทีที่แล้ว" หรือเปล่าครับ
|
|
|
|
|
Date :
2014-11-20 16:52:14 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เป็นโค้ดที่ทำงานผิดพลาดแน่นอนครับ
Code (PHP)
$diff = time() - $timeTemp //ตัวแปลที่เก็บค่าของเวลาโพส
$periode = array( "วินาที" , "นาที" , "ชั่วโมง" );
if ($diff < 60)
{
$i = 0;
$diff = ($diff == 0)? "" : $diff;
echo $diff $prriods[$i]."ที่แล้ว";
}
if ($diff < 3600)
{
$i = 1;
$diff = round($diff / 60);
$diff = ($diff == 3 || $diff == 4)? "" : $diff;
echo $diff $prriods[$i]."ที่แล้ว";
}
ถ้า $diff น้อยกว่า 60 มันจะทำงาน if ที่สองด้วย เพราะเลขที่น้อยกว่า 60 ก็น้อยกว่า 3600 ด้วย
จะกลายเป็น echo 2 ครั้ง
และใน if ที่ 2 นี่เงื่อนไขประหลาดมากครับ ทำไมต้องเป็น 3 และ 4 และทำไมต้องให้ $diff เป็นค่าว่าง
เพราะเมื่อมาต่อกับ $prriods[$i]."ที่แล้ว" มันก็จะกลายเป็น "นาทีที่แล้ว" ซึ่งไม่ได้ผลตามต้องการแน่นอน
สรุปถ้าตัวอย่างนี้มาจากหนังสือก็ให้ ignore ตัวอย่างนี้ไปเลยครับ และหาหนังสือเล่มใหม่เลยยิ่งดี
|
|
|
|
|
Date :
2014-11-20 17:00:09 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอให้ตัวอย่างพื้นฐานที่ง่ายและชัดเจนกว่าไว้ล่ะกันครับ เรื่องนี้มันเกี่ยวกับ if else elseif ครับ
Code (PHP)
<?php
function time_text($timestamp)
{
$diff = time() - $timestamp;
// ถ้า diff น้อยกว่าหรือเท่ากับ 5
if ($diff <= 5) {
// แสดงข้อความ
echo 'ไม่กี่วินาทีที่แล้ว';
}
// แต่ถ้าถ้า diff น้อยกว่า 1 ชั่วโมง
elseif ($diff < 3600) {
// แสดงเป็นนาที ใช้ floor() ปัดเศษที่หารได้ลง
echo floor($diff / 60) . ' นาทีที่แล้ว';
}
// นอกนั้นแสดงเป็นชั่วโมง
else {
echo floor($diff / 3600) . ' ชั่วโมงที่แล้ว';
}
}
echo time_text(time()); // ไม่กี่วินาทีที่แล้ว
echo time_text(time() - 300); // 5 นาทีที่แล้ว
echo time_text(time() - 4000); // 1 ชั่วโมงที่แล้ว
|
|
|
|
|
Date :
2014-11-20 17:10:01 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกคำตอบมากเลยคับ
|
|
|
|
|
Date :
2014-11-20 17:21:34 |
By :
sompon01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|