|
|
|
ช่วยดูโค๊ดนี้ให้หน่อยครับผมต้องการให้แสดงว่า New เมื่อมีการตั้งกระทู้ใหม่ |
|
|
|
|
|
|
|
$InputDate มีค่าในลักษณะใดครับ
|
|
|
|
|
Date :
2013-02-22 21:52:26 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ฟังก์ชันแสดงวันเวลา
Code (PHP)
$ThaiMonth=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
function ThaiDate($InputDate)
{
global $ThaiMonth;
$day=substr($InputDate,6,2);
$month=substr($InputDate,4,2);
$month=(int)$month -1;
$year=substr($InputDate,0,4);
$year=$year+543;
$month=$ThaiMonth[$month];
echo (int)$day." ".$month." ".$year;
}
function ThaiDatesale($InputDate)
{
global $ThaiMonth;
$day=substr($InputDate,8,2);
$month=substr($InputDate,5,2);
$month=(int)$month -1;
$year=substr($InputDate,0,4);
$year=$year+543;
$month=$ThaiMonth[$month];
$thaidatenew=
$thaidatenew= (int)$day." ".$month." ".$year;
return $thaidatenew;
}
|
|
|
|
|
Date :
2013-02-22 22:02:15 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
function ThaiDatesale($InputDate)
{
global $ThaiMonth;
$day=substr($InputDate,8,2);
$month=substr($InputDate,5,2);
$standmonth=$month;
$month=(int)$month -1;
$year=substr($InputDate,0,4);
$year=$year+543;
$month=$ThaiMonth[$month];
$Ymd=date("Y-m-d");
$thaidatenew= (int)$day." ".$month." ".$year;
$DateDiff=DateDiff($year."-".$standmonth."-".$day;
$now=date("y-m-d");
$DiffNow=DateDiff($now);
if($DateDiff==$DiffNow){
echo $Status="New";
}else{
echo $Status="";
}
return $thaidatenew.$Status;
}
ลองดูครับ
|
ประวัติการแก้ไข 2013-02-22 22:20:26
|
|
|
|
Date :
2013-02-22 22:19:37 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับเดี๋ยวลองดูครับ
|
|
|
|
|
Date :
2013-02-22 22:23:10 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้ครับ
function ThaiDatesale($InputDate)
{
global $ThaiMonth;
$day=substr($InputDate,8,2);
$month=substr($InputDate,5,2);
$standmonth=$month;
$month=(int)$month -1;
$year=substr($InputDate,0,4);
$year=$year+543;
$month=$ThaiMonth[$month];
$Ymd=date("Y-m-d");
$thaidatenew= (int)$day." ".$month." ".$year;
$DateDiff=DateDiff($year."-".$standmonth."-".$day; // eror บรรทัดนี้ครับ
$now=date("y-m-d");
$DiffNow=DateDiff($now);
if($DateDiff==$DiffNow){
echo $Status="New";
}else{
echo $Status="";
}
return $thaidatenew.$Status;
}
|
|
|
|
|
Date :
2013-02-22 23:16:20 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ error เพราะ DateDiff() ไม่ใช่ฟังก์ชั่นของ PHP
แต่เป็นฟังก์ชั่นที่เป็นบทความหนึ่งของ thaicreate
จึงไม่มีฟังก์ชั่นนี้อยู่โดยธรรมชาติครับ
$InputDate เป็น ชนิด DATE หรือ DATETIME ที่อ่านมาจาก MySQL ใช่ไหมครับ
แนะนำให้ใช้ DATEDIFF() ของ MySQL เลยครับ
ฟังก์ชั่นนี้ให้ค่าคืนกลับมาเป็นจำนวนวันที่ต่างกัน
SELECT ออกมาโดยเทียบกับ NOW()
แล้วทำให้เป็น boolean โดยเปรียบเที่ยบว่าค่าที่คืนกลับมามากกว่า 1 หรือเปล่า
และกำหนดให้เป็นอีกคอลัมน์นึง (ในที่นี้คือ is_new)
เช่น
ตัวอย่าง
SELECT (DATEDIFF(NOW(), `your_date_column`) > 1) AS `is_new` FROM `your_table`
แล้วตรวจจากคอลัมน์ดังกล่าวเอาครับ ว่าเป็นจริงหรือเท็จ ถ้าจริง ก็แสดงคำว่า New
|
|
|
|
|
Date :
2013-02-23 04:59:11 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ผมใช้คำสั่ง แบบนี้ครับ
<? $current_server_time = date("Y")."-".date("m")."-".date("d")?>
<?
$date0=($data2[q_date]);
//echo ( strtotime($current_server_time) - strtotime($date0) ) / ( 60 * 60 * 24 ); // 7
$diff = ( strtotime($current_server_time) - strtotime($date0) ) / ( 60 * 60 * 24 );
//โชว์ new
if($diff > 0){
//echo "";
}else{
echo" <img src=img/new-icon.gif>";
}
?>
ขอบคุณมากครับ
|
|
|
|
|
Date :
2013-02-23 15:44:37 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดซ้ำซ้อนมากครับ ไม่แนะนำเลย
<?
// ตรงนี้
$current_server_time = date("Y")."-".date("m")."-".date("d")
// ใช้แค่ $current_server_time = date("Y-m-d") ก็ได้
// แต่จริงๆ ไม่ต้องทำแบบนั้นเพราะถัดจากนี้คุณก็เอามันมาแปลงกลับเป็น time อยู่ดี
?>
<?
$date0=($data2[q_date]);
//echo ( strtotime($current_server_time) - strtotime($date0) ) / ( 60 * 60 * 24 ); // 7
$diff = ( strtotime($current_server_time) - strtotime($date0) ) / ( 60 * 60 * 24 );
//โชว์ new
if($diff > 0){
//echo "";
}else{
echo" <img src=img/new-icon.gif>";
}
?>
เราทำได้ง่ายๆ สั้นๆ เลยครับ
<?php
// time() ให้เวลาปัจจุบันกลับมาเป็นวินาที
// strtotime() แปลงเวลาในรูปแบบสตริงให้เป็นวินาที
// ดังนั้นเราแค่เอาสองค่านี้มาลบกัน แล้วตรวจว่าช่วงห่างอยู่ใน 86400 วินาทีหรือไม่
// เพราะใน 1 วันมี 86400 วินาที
if (time() - strtotime($data2['q_date']) < 86400) {
echo '<img src="img/new-icon.gif" />';
}
?>
|
|
|
|
|
Date :
2013-02-24 18:53:42 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับสำหรับคำแนะนำ
|
|
|
|
|
Date :
2013-02-24 20:04:01 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[head][/head]
<?php
// time() ให้เวลาปัจจุบันกลับมาเป็นวินาที
// strtotime() แปลงเวลาในรูปแบบสตริงให้เป็นวินาที
// ดังนั้นเราแค่เอาสองค่านี้มาลบกัน แล้วตรวจว่าช่วงห่างอยู่ใน 86400 วินาทีหรือไม่
// เพราะใน 1 วันมี 86400 วินาที
if (time() - strtotime($data2['q_date']) < 86400) {
echo '<img src="img/new-icon.gif" />';
}
?>
ถ้าเรากำหนดให้ (time() - strtotime($data2['q_date']) ให้น้อยกว่า 1 วัน หรือ 86400 ทำได้ไหมครับ
ลองใส่ (time() - strtotime($data2['q_date']) < 43200) เวลาตั้งกระทู้ใหม่จะไม่แสดง New
ต้องใช้หลักการอะไรครับ
|
|
|
|
|
Date :
2013-02-25 07:07:07 |
By :
youfishing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|