|
|
|
ทำอย่างไรให้แสดงวันที่เป็นภาษาไทย และ กำหนดการแสดงผลของเวลา |
|
|
|
|
|
|
|
พยายามปรบแล้วไมไ่ด้เลยครับ
|
|
|
|
|
Date :
2016-05-25 07:51:12 |
By :
yuttakarn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+543 เข้าไปครับ หรือลองศึกษา date_dif ครับช่วยได้
|
|
|
|
|
Date :
2016-05-25 08:23:51 |
By :
bosprogammer1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 2 เขียนโดย : bosprogammer1 เมื่อวันที่ 2016-05-25 08:23:51
รายละเอียดของการตอบ ::
Code (PHP)
<?php
function DateThai($strDate)
{
$strYear = date("Y",strtotime($strDate))+543;
$strMonth= date("n",strtotime($strDate));
$strDay= date("j",strtotime($strDate));
$strHour= date("H",strtotime($strDate));
$strMinute= date("i",strtotime($strDate));
$strSeconds= date("s",strtotime($strDate));
$strMonthCut = Array("","ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.");
$strMonthThai=$strMonthCut[$strMonth];
return "$strDay $strMonthThai $strYear, $strHour:$strMinute";
}
$strDate = "2008-08-14 13:42:44";
echo "ThaiCreate.Com Time now : ".DateThai($strDate);
?>
ผมใส่ code นี้ครับ แต่มันติดตรง ไม่เข้าใจว่าจะเอา DateDiff มาประยุค์ใช้อย่างไรให้ได้รูปแบบ นี้ครับ
เช่น วันแรก 1/3/54 08:00
วันที่สอง 2/3/54 07:00
ผลที่ได้ จำนวน 0 วัน 23 ชม.
หรือ วันแรก 1/3/54 08:00
วันที่สอง 2/3/54 09:00
ผลที่ได้ จำนวน 1 วัน 1 ชม.
|
|
|
|
|
Date :
2016-05-25 09:45:06 |
By :
yuttakarn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดู timeago function นะ
มี script ให้ศึกษามากมาย
|
|
|
|
|
Date :
2016-05-25 10:40:41 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 5 เขียนโดย : fossil31 เมื่อวันที่ 2016-05-25 10:40:41
รายละเอียดของการตอบ ::
https://www.thaicreate.com/php/forum/062258.html
Code (PHP)
<?php
/* =Time&Date Config
-------------------------------------------------------------- */
$SuffixTime = array(
"th"=>array(
"time"=>array(
"Seconds" => " วินาทีที่แล้ว",
"Minutes" => " นาทีที่แล้ว",
"Hours" => " ชั่วโมงที่แล้ว"
),
"day"=>array(
"Yesterday" => "เมื่อวาน เวลา ",
"Monday" => "วันจันทร์ เวลา ",
"Tuesday" => "วันอังคาร เวลา ",
"Wednesday" => "วันพุธ เวลา ",
"Thursday" => "วันพฤหัสบดี เวลา ",
"Friday" => "วันศุกร์ เวลา ",
"Saturday" => " วันวันเสาร์ เวลา ",
"Sunday" => "วันอาทิตย์ เวลา ",
)
),
"en"=>array(
"time"=>array(
"Seconds" => " seconds ago",
"Minutes" => " minutes ago",
"Hours" => " hours ago"
),
"day"=>array(
"Yesterday" => "Yesterday at ",
"Monday" => "Monday at ",
"Tuesday" => "Tuesday at ",
"Wednesday" => "Wednesday at ",
"Thursday" => "Thursday at ",
"Friday" => "Friday at ",
"Saturday" => "Saturday at ",
"Sunday" => "Sunday at ",
)
)
);
$DateThai = array(
// Day
"l" => array( // Full day
"Monday" => "วันจันทร์",
"Tuesday" => "วันอังคาร",
"Wednesday" => "วันพุธ",
"Thursday" => "วันพฤหัสบดี",
"Friday" => "วันศุกร์",
"Saturday" => "วันวันเสาร์",
"Sunday" => "วันอาทิตย์",
),
"D" => array( // Abbreviated day
"Monday" => "จันทร์",
"Tuesday" => "อังคาร",
"Wednesday" => "พุธ",
"Thursday" => "พฤหัส",
"Friday" => "ศุกร์",
"Saturday" => "วันเสาร์",
"Sunday" => "อาทิตย์",
),
// Month
"F" => array( // Full month
"January" => "มกราคม",
"February" => "กุมภาพันธ์",
"March" => "มีนาคม",
"April" => "เมษายน",
"May" => "พฤษภาคม",
"June" => "มิถุนายน",
"July" => "กรกฎาคม",
"August" => "สิงหาคม",
"September" => "กันยายน",
"October" => "ตุลาคม",
"November" => "พฤศจิกายน",
"December" => "ธันวาคม"
),
"M" => array( // Abbreviated month
"January" => "ม.ค.",
"February" => "ก.พ.",
"March" => "มี.ค.",
"April" => "เม.ย.",
"May" => "พ.ค.",
"June" => "มิ.ย.",
"July" => "ก.ค.",
"August" => "ส.ค.",
"September" => "ก.ย.",
"October" => "ต.ค.",
"November" => "พ.ย.",
"December" => "ธ.ค."
)
);
/* =Time&Date Config
-------------------------------------------------------------- */
/* =Function
-------------------------------------------------------------- */
function generate_date_today($Format, $Timestamp, $Language = "en", $TimeText = true )
{
global $SuffixTime, $DateThai;
//return date("i:H d-m-Y", $Timestamp) ." | ". date("i:H d-m-Y", time());
if( date("Ymd", $Timestamp) >= date("Ymd", (time()-345600)) && $TimeText) // Less than 3 days.
{
$TimeStampAgo = (time()-$Timestamp);
if(($TimeStampAgo < 86400)) // Less than 1 day.
{
$TimeDay = "time"; // Use array time
if($TimeStampAgo < 60) // Less than 1 minute.
{
$Return = (time() - $Timestamp);
$Values = "Seconds";
}
else if($TimeStampAgo < 3600) // Less than 1 hour.
{
$Return = floor( (time() - $Timestamp)/60 );
$Values = "Minutes";
}
else // Less than 1 day.
{
$Return = floor( (time() - $Timestamp)/3600 );
$Values = "Hours";
}
}
else if($TimeStampAgo < 172800) // Less than 2 day.
{
$Return = date("H:i", $Timestamp);
$TimeDay = "day";
$Values = "Yesterday";
}
else // More than 2 hours..
{
$Return = date("H:i", $Timestamp);
$TimeDay = "day";
$Values = date("l", $Timestamp);
}
if($TimeDay == "time")
$Return .= $SuffixTime[$Language][$TimeDay][$Values];
else if($TimeDay == "day")
$Return = $SuffixTime[$Language][$TimeDay][$Values] . $Return;
return $Return;
}
else
{
if($Language == "en")
{
return date($Format, $Timestamp);
}
else if($Language == "th")
{
$Format = str_replace("l", "|1|", $Format);
$Format = str_replace("D", "|2|", $Format);
$Format = str_replace("F", "|3|", $Format);
$Format = str_replace("M", "|4|", $Format);
$Format = str_replace("y", "|x|", $Format);
$Format = str_replace("Y", "|X|", $Format);
$DateCache = date($Format, $Timestamp);
$AR1 = array ("", "l", "D", "F", "M");
$AR2 = array ("", "l", "l", "F", "F");
for($i=1; $i<=4; $i++)
{
if(strstr($DateCache, "|". $i ."|"))
{
//$Return .= $i;
$split = explode("|". $i ."|", $DateCache);
for($j=0; $j<count($split)-1; $j++)
{
$StrCache .= $split[$j];
$StrCache .= $DateThai[$AR1[$i]][date($AR2[$i], $Timestamp)];
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
}
if(strstr($DateCache, "|x|"))
{
$split = explode("|x|", $DateCache);
for($i=0; $i<count($split)-1; $i++)
{
$StrCache .= $split[$i];
$StrCache .= substr((date("Y", $Timestamp)+543), -2);
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
if(strstr($DateCache, "|X|"))
{
$split = explode("|X|", $DateCache);
for($i=0; $i<count($split)-1; $i++)
{
$StrCache .= $split[$i];
$StrCache .= (date("Y", $Timestamp)+543);
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
$Return = $DateCache;
return $Return;
}
}
}
/* =Function
-------------------------------------------------------------- */
//$dateAB = $row[m_date];
echo generate_date_today("d M Y H:i", strtotime($row['m_date']), "th", true);
?>
ผมใช้จากอันนี้ครับ แสดงได้ครับแต่ติดปัญหา พอใส่ไปแล้ว ปกติ หน้ารายการมันจะแสดง มาทั้งหมด 6 รายการ แต่พอใส่ อันดังกล่าวไป
มันแสดงเพียง 2 รายการและ วันที่แสดงเพียง 1รายอีก อีกรายการก็ว่างเปล่าไม่แสดงวันที่
แต่พอใช้แบบปกติ ไม่ทำแบบแสดงภาษาไทยแสดงวันที่ต้องการ
โดยใช้ <?php
echo $row[m_date];
?>
มันก็แสดง 6 รายการวันที่แบบ 2016-04-27 16:52:06 ปกติ
พยายามลองปรับก็ไม่ได้ครับ
|
|
|
|
|
Date :
2016-05-25 12:38:52 |
By :
yuttakarn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : yuttakarn เมื่อวันที่ 2016-05-25 12:38:52
รายละเอียดของการตอบ ::
เป็นเพราะมันไม่เข้า elfe if ป่าวครับลองเชครึยังครับ
Code (PHP)
se if($Language == "th")
156.
{
157.
$Format = str_replace("l", "|1|", $Format);
158.
$Format = str_replace("D", "|2|", $Format);
159.
$Format = str_replace("F", "|3|", $Format);
160.
$Format = str_replace("M", "|4|", $Format);
161.
$Format = str_replace("y", "|x|", $Format);
162.
$Format = str_replace("Y", "|X|", $Format);
163.
164.
$DateCache = date($Format, $Timestamp);
165.
166.
$AR1 = array ("", "l", "D", "F", "M");
167.
$AR2 = array ("", "l", "l", "F", "F");
168.
169.
for($i=1; $i<=4; $i++)
170.
{
171.
if(strstr($DateCache, "|". $i ."|"))
172.
{
173.
//$Return .= $i;
174.
175.
$split = explode("|". $i ."|", $DateCache);
176.
for($j=0; $j<count($split)-1; $j++)
177.
{
178.
$StrCache .= $split[$j];
179.
$StrCache .= $DateThai[$AR1[$i]][date($AR2[$i], $Timestamp)];
180.
}
181.
$StrCache .= $split[count($split)-1];
182.
$DateCache = $StrCache;
183.
$StrCache = "";
184.
empty($split);
185.
}
186.
}
|
|
|
|
|
Date :
2016-05-25 13:37:53 |
By :
bosprogammer1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บางทีเราก็ไม่เข้าใจมนุษย์นะ
php มันมี package ให้ใช้ตั้งมากมายก็ไม่ยอมหามาใช้
ลง composer แล้วติดตั้ง package ที่ต้องการก็จบแล้ว
ที่รู้จะมาเขียนเองทำไมเนอะ
อย่างเจ้า date เนี่ยจะใช้เป็นภาษาไทย ก็เอามาโมนิดหน่อยก็ใช้ได้แล้ว
https://www.thaicreate.com/php/forum/122520.html
|
|
|
|
|
Date :
2016-05-25 14:01:04 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 7 เขียนโดย : bosprogammer1 เมื่อวันที่ 2016-05-25 13:37:53
รายละเอียดของการตอบ ::
อันนี้ผมใส่ code
Code (PHP)
<?php
/* =Time&Date Config
-------------------------------------------------------------- */
$SuffixTime = array(
"th"=>array(
"time"=>array(
"Seconds" => " วินาทีที่แล้ว",
"Minutes" => " นาทีที่แล้ว",
"Hours" => " ชั่วโมงที่แล้ว"
),
"day"=>array(
"Yesterday" => "เมื่อวาน เวลา ",
"Monday" => "วันจันทร์ เวลา ",
"Tuesday" => "วันอังคาร เวลา ",
"Wednesday" => "วันพุธ เวลา ",
"Thursday" => "วันพฤหัสบดี เวลา ",
"Friday" => "วันศุกร์ เวลา ",
"Saturday" => " วันวันเสาร์ เวลา ",
"Sunday" => "วันอาทิตย์ เวลา ",
)
),
"en"=>array(
"time"=>array(
"Seconds" => " seconds ago",
"Minutes" => " minutes ago",
"Hours" => " hours ago"
),
"day"=>array(
"Yesterday" => "Yesterday at ",
"Monday" => "Monday at ",
"Tuesday" => "Tuesday at ",
"Wednesday" => "Wednesday at ",
"Thursday" => "Thursday at ",
"Friday" => "Friday at ",
"Saturday" => "Saturday at ",
"Sunday" => "Sunday at ",
)
)
);
$DateThai = array(
// Day
"l" => array( // Full day
"Monday" => "วันจันทร์",
"Tuesday" => "วันอังคาร",
"Wednesday" => "วันพุธ",
"Thursday" => "วันพฤหัสบดี",
"Friday" => "วันศุกร์",
"Saturday" => "วันวันเสาร์",
"Sunday" => "วันอาทิตย์",
),
"D" => array( // Abbreviated day
"Monday" => "จันทร์",
"Tuesday" => "อังคาร",
"Wednesday" => "พุธ",
"Thursday" => "พฤหัส",
"Friday" => "ศุกร์",
"Saturday" => "วันเสาร์",
"Sunday" => "อาทิตย์",
),
// Month
"F" => array( // Full month
"January" => "มกราคม",
"February" => "กุมภาพันธ์",
"March" => "มีนาคม",
"April" => "เมษายน",
"May" => "พฤษภาคม",
"June" => "มิถุนายน",
"July" => "กรกฎาคม",
"August" => "สิงหาคม",
"September" => "กันยายน",
"October" => "ตุลาคม",
"November" => "พฤศจิกายน",
"December" => "ธันวาคม"
),
"M" => array( // Abbreviated month
"January" => "ม.ค.",
"February" => "ก.พ.",
"March" => "มี.ค.",
"April" => "เม.ย.",
"May" => "พ.ค.",
"June" => "มิ.ย.",
"July" => "ก.ค.",
"August" => "ส.ค.",
"September" => "ก.ย.",
"October" => "ต.ค.",
"November" => "พ.ย.",
"December" => "ธ.ค."
)
);
/* =Time&Date Config
-------------------------------------------------------------- */
/* =Function
-------------------------------------------------------------- */
function generate_date_today($Format, $Timestamp, $Language = "en", $TimeText = true )
{
global $SuffixTime, $DateThai;
//return date("i:H d-m-Y", $Timestamp) ." | ". date("i:H d-m-Y", time());
if( date("Ymd", $Timestamp) >= date("Ymd", (time()-345600)) && $TimeText) // Less than 3 days.
{
$TimeStampAgo = (time()-$Timestamp);
if(($TimeStampAgo < 86400)) // Less than 1 day.
{
$TimeDay = "time"; // Use array time
if($TimeStampAgo < 60) // Less than 1 minute.
{
$Return = (time() - $Timestamp);
$Values = "Seconds";
}
else if($TimeStampAgo < 3600) // Less than 1 hour.
{
$Return = floor( (time() - $Timestamp)/60 );
$Values = "Minutes";
}
else // Less than 1 day.
{
$Return = floor( (time() - $Timestamp)/3600 );
$Values = "Hours";
}
}
else if($TimeStampAgo < 172800) // Less than 2 day.
{
$Return = date("H:i", $Timestamp);
$TimeDay = "day";
$Values = "Yesterday";
}
else // More than 2 hours..
{
$Return = date("H:i", $Timestamp);
$TimeDay = "day";
$Values = date("l", $Timestamp);
}
if($TimeDay == "time")
$Return .= $SuffixTime[$Language][$TimeDay][$Values];
else if($TimeDay == "day")
$Return = $SuffixTime[$Language][$TimeDay][$Values] . $Return;
return $Return;
}
else
{
if($Language == "en")
{
return date($Format, $Timestamp);
}
else if($Language == "th")
{
$Format = str_replace("l", "|1|", $Format);
$Format = str_replace("D", "|2|", $Format);
$Format = str_replace("F", "|3|", $Format);
$Format = str_replace("M", "|4|", $Format);
$Format = str_replace("y", "|x|", $Format);
$Format = str_replace("Y", "|X|", $Format);
$DateCache = date($Format, $Timestamp);
$AR1 = array ("", "l", "D", "F", "M");
$AR2 = array ("", "l", "l", "F", "F");
for($i=1; $i<=4; $i++)
{
if(strstr($DateCache, "|". $i ."|"))
{
//$Return .= $i;
$split = explode("|". $i ."|", $DateCache);
for($j=0; $j<count($split)-1; $j++)
{
$StrCache .= $split[$j];
$StrCache .= $DateThai[$AR1[$i]][date($AR2[$i], $Timestamp)];
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
}
if(strstr($DateCache, "|x|"))
{
$split = explode("|x|", $DateCache);
for($i=0; $i<count($split)-1; $i++)
{
$StrCache .= $split[$i];
$StrCache .= substr((date("Y", $Timestamp)+543), -2);
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
if(strstr($DateCache, "|X|"))
{
$split = explode("|X|", $DateCache);
for($i=0; $i<count($split)-1; $i++)
{
$StrCache .= $split[$i];
$StrCache .= (date("Y", $Timestamp)+543);
}
$StrCache .= $split[count($split)-1];
$DateCache = $StrCache;
$StrCache = "";
empty($split);
}
$Return = $DateCache;
return $Return;
}
}
}
/* =Function
-------------------------------------------------------------- */
//$dateAB = $row[m_date];
echo generate_date_today("d M Y H:i", strtotime($row['m_date']), "th", true);
?>
การแสดงผลปกติครับ
แต่พอผมลองเอามาใส่ในอีกส่วนแต่แสดงเป็นรูปภาพรายการ
การแสดงผลกับมีปัญหา ทั้งๆทีรูปแบบการเรียก เวลาเหมือนกัน เดิมใช้เรียกแบบปกติ
<? echo $row[m_date] ?>
พอนำ code แปลงวันที่เวลามาใส่
เว็บก็เน่าไปเลย
แสดงไม่ครบ และ แบบตามรูปครับ
|
|
|
|
|
Date :
2016-05-25 16:29:19 |
By :
yuttakarn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอคำปรึกษาด้วยครับ
|
|
|
|
|
Date :
2016-05-25 20:20:00 |
By :
yuttakarn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมใช้สูตรนี้นะ (ดึงมาจากโปรแกรมส่วนตัว บอกก่อนว่ามั่วพอสมควร 5 5 5 )
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?PHP
$date_ago_del=date("Y-m-d H:i:s");
$now_date="2016-05-25 21:35:44"; //สมมุติว่าเป็นวันที่จากฐานข้อมูล
$date_ago=(strtotime($date_ago_del) - strtotime($now_date))/ ( 60 ); $HM=" นาทีที่แล้ว..";
if ($date_ago>60) { $min=$date_ago%60; $date_hx=floor($date_ago/60); $date_ago=$date_hx."ชั่วโมง".$min."นาทีที่แล้ว.."; $HM="";}else{ $date_ago=number_format($date_ago,0)."นาทีที่แล้ว.."; }
echo $date_ago;
?>
|
|
|
|
|
Date :
2016-05-25 22:51:01 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
function time_diff( $st, $en){
// datetime format = Y-m-d H:i:s
$dif = strtotime($en) - strtotime($st); // $dif ค่าเป็นวินาที
$sec = $dif % 60; $dif = floor($dif / 60); //หาค่า วินาที
$min = $dif % 60; $dif = floor($dif / 60); //หาค่า นาที
$hr = $dif % 24; $day = floor($dif / 24); //หาค่า = ชั่วโมง วัน
return $day,' วัน ', $hr,' ชม. ', $min, ' นาที ', $sec,' วินาที';
}
|
ประวัติการแก้ไข 2016-05-26 07:08:56
|
|
|
|
Date :
2016-05-26 07:07:44 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|