|
|
|
ขอถามเกี่ยวกับ function DateThai กับการ export ครับ |
|
|
|
|
|
|
|
เกี่ยวกับฟังชั่นนี้ครับ
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";
}
?>
แล้วก็ใช้คำสั่งที่ให้ออกรายงาน
Code (PHP)
<?
header("Content-Type: application/x-msexcel");
header("content-disposition: attachment;filename=Data_bill.xls");
echo "<meta http-equiv='Content-Type' content='text/html; charset=windows-874'>";
?>
ตารางแสดงข้อมูลของผม
Code (PHP)
<td bgcolor="#FFFFFF" ><?
DateThai($strDate2 );
$strDate2 = ($objResult["beforerank"]);
if($strDate2 == "0000-00-00")
{
echo $strDate2 = "";
}
else
{
echo DateThai($strDate2 );
} ?></td>
1.ผมไม่สามารถ ใส่ปีที่นานเกินไปเช่น 2 ก.พ. 2590 แต่ข้อมูลแสดงเป็น 1 ม.ก. 2513
2.ข้อมูลในตารางเช่น 1 ต.ค. 2548 แต่พอ export จะเป็น 1-ต.ค.-46 ซึ่งมีขีด และ ปีไม่แสดงเต็ม
ขอบคุณล่วงหน้าครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2013-09-17 17:55:40 |
By :
puldool |
View :
1084 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันต้องเซ็ทค่า format cell ใน excel หรือเปล่าครับ
|
|
|
|
|
Date :
2013-09-17 18:06:33 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ excel 2010 มันไม่รองรับครับ เปลี่ยนไปใช้ 2007
ตอนนี้เหลือ แต่ Datethai อะครับ ยังไม่ได้เลยครับ
|
ประวัติการแก้ไข 2013-09-17 18:45:18
|
|
|
|
Date :
2013-09-17 18:44:59 |
By :
puldool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คืองี้คับ คิดว่าจำนวนวินาที มันเกิดข้อมูล 4 ไบต์ int ดังนั้นฟังชั่นเกี่ยวกับวันที่มันจะมีข้อจำกัดอยู่
สังเกตุใน ฟังชั่น DateThai() ในนั้นมันมี +543 แสดงว่ามันรับค่าเป็นปี ค.ศ. คับ ถ้าคุณใส่ พ.ศ. มันก็น่าจะเกินไป
ลองแก้ปี ตอนส่งค่าไป ให้ฟังชั่นนี้ให้เป็น ค.ศ.
โดยทั่วไปเรามักเกบเป็น ค.ศ. ในฐานข้อมูล เวลาค่อยเปลี่ยนเป็น พ.ศ. แต่ว่าจำทำแบบไหนก็ได้ ไม่มีบังคับ
|
|
|
|
|
Date :
2013-09-17 19:28:04 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ ในฐานข้อมูลผมเก็บเป็น ค.ศ.ครับ แต่มีข้อจำกัดที่เห็นคือแก้ปีเกิน 30-40 ปีขึ้นไปไม่ได้ ต้องการใช้ในการเกษียนน่ะครับ พอมีวิธีแก้ไหมครับ
|
ประวัติการแก้ไข 2013-09-17 19:42:29
|
|
|
|
Date :
2013-09-17 19:41:52 |
By :
puldool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ
|
|
|
|
|
Date :
2013-09-17 20:53:44 |
By :
puldool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหามันไม่เกิดจาก excel หรอก
คือ file ที่ create มันเป็น html น่ะ แต่ไปกำหนด content type ให้ไปเปิดที่ excel
ด้วยความที่เป็น html เลยไม่มี type กำกับ ตอนเปิด excel มันเลยกำหนด auto format ให้
จึงเดา type ให้ถูกบ้างไม่ถูกบ้าง ถ้าอยากจะแก้ปัญหาจริง ควรใช้ phpexcel
report ออกเป็น excel แท้ๆ ดู ซึ่งถ้าเป็น excel แท้ๆ แล้ว thaidate fuction นี่ไม่ต้องใช้เลย
เราสามารถกำหนด format มัน column นั้นแสดงเป็น culture ไหนก็ได้ ขอเพียงเขียนให้อยู่ในรูป
format datetime ให้ถูกต้องก็พอ
ปล. date ไม่ควร +543 เพื่อแปลงเป็น พ.ศ. ควรจะกำหนดที่ format เอา
(เพื่อแสดงผลเท่านั้น ถ้าเอาไปคำนวณ ก็ปล่อยมันเป็น date ไป)
ไม่งั้นจะมีปัญหาเรื่อง 29 ก.พ. ได้
|
|
|
|
|
Date :
2013-09-18 10:51:34 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|