Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > แปลงรูปแบบของ datetime แล้ว วินาทีไม่ออก กลายเป็น 00 แทน



 

แปลงรูปแบบของ datetime แล้ว วินาทีไม่ออก กลายเป็น 00 แทน

 



Topic : 114161



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์




(ที่บริษัทบล๊อคการอัพโหลดครับ ขออภัย)

ผมดึงข้อมูลจาก SQL SERVER 2008 ฟิวที่เก็บข้อมูลเป็น datetime มาโชว์ใน web ใช้ PHP เป็นหลัก

คำสั่ง SQL

Code
SELECT TOP 20 [tb_reportslist].nUserID , [tb_reportslist].nDeviceID , [tb_reportslist].dtDateTime , [imp_emp].strUserName , [imp_emp].[nUserID], [Device_sukishi].[DeviceID] , [Device_sukishi].[DeviceName] FROM [hr_scan].[dbo].[tb_reportslist] INNER JOIN [hr_scan].[dbo].[imp_emp] ON tb_reportslist.nUserID = imp_emp.[nUserID] INNER JOIN [hr_scan].[dbo].[Device_sukishi] ON tb_reportslist.nDeviceID = Device_sukishi.[DeviceID] WHERE (CAST(tb_reportslist.dtDateTime AS date)) BETWEEN '2015-02-02' AND '2015-02-02' order by dtDateTime


ผมลองไป query ใน sql server management studio แล้ววินาทีออกปกติ ตัวอย่าง ผลลัพธ์
Quote:
2015-02-02 00:01:04.000


ผลลัพธ์ที่หน้า web
Quote:
Feb 2 2015 12:01AM
<------ อันนี้เป็น format เริ่มต้น ยังไม่ได้แปลงใดๆ

แต่ผลลัพธ์ที่ผมต้องการคือ
Quote:
วัน/เดือน/ปี - ชั่วโมง-นาที-วินาที


ดังนั้นผมจึงใช้ฟังชันนี้ http://php.net/manual/en/function.date.php

Code
echo "<td>".date_format(new DateTime($row[dtDateTime]),'d/m/Y - H:i:s')."</td>";


ผลลัพธ์ที่ได้ออกตรงตามที่ผมต้องการยกเว้นวินาที มันเป็น 00 หมดเลยทุก row ครับ

รบกวนด้วยครับ ขอบคุณครับ



Tag : PHP, Ms SQL Server 2008, HTML/CSS, Windows









ประวัติการแก้ไข
2015-02-02 17:00:04
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-02-02 16:47:23 By : BL@CK View : 2835 Reply : 12
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้ strtotime แปลง Format ก่อนครับ

Code (PHP)
echo date('Y-m-d H:i:s',strtotime('$stringDate'));







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 16:59:18 By : mr.win
 


 

No. 2



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2015-02-02 16:59:18
รายละเอียดของการตอบ ::
ลองแปลงแล้วครับ ผลลัพธ์ออกเป็น
Quote:
01-01-1970 07:00:00

ทุก row เลยครับ

อันนี้ syntax php
Code
$time=date('d-m-Y h:i:s',strtotime($row[dtDateTime]));

dtDateTime คือชื่อฟิวที่ใช้เก็บข้อมูล datetime ของผมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:05:12 By : BL@CK
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (PHP)
echo $row[dtDateTime]


มันได้ค่าเป็นอะไรครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:13:13 By : mr.win
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

อาจจะต้องทำการ Convert ข้อมูลจาก DateTime ของ SQL Server ให้เป็น Format ที่ต้องการก่อนครับ

SQL SERVER CONVERT

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:15:08 By : mr.win
 


 

No. 5



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


echo $row[dtDateTime] มาดูตรงๆ หน่อยได้ไหมครับ ว่ารูปแปบเป็นอย่างไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:16:15 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : mr.win เมื่อวันที่ 2015-02-02 17:13:13
รายละเอียดของการตอบ ::
จากที่ใช้ฟังชัน strtotime แปลง
ตอนนี้ วันชั่วโมงนาทีออกแล้วครับ แต่วินาทียังคงเป็น 00 เหมือนเดิม

02-02-2015 12:01:00

syntax
echo "<td>".$time=date('d-m-Y h:i:s',strtotime($row[dtDateTime]))."</td>";


echo $row[dtDateTime] แล้วได้แบบนี้ครับ
Quote:
Feb 2 2015 12:01AM
ผลลัพก็ออกตามคำสั่ง sql ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:28:45 By : BL@CK
 


 

No. 7



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (PHP)
<?php
	echo date('Y-m-d H:i:s',strtotime('Feb 2 2015 12:01AM'));
?>


Result
2015-02-02 00:01:00


มันก็แปลงได้น่ะครับ

Quote:
date_format(new DateTime($row[dtDateTime]),'d/m/Y - H:i:s')


ว่าแต่ทำไมต้องแลงให้เป็น date_format ด้วย DateTime อีกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:37:00 By : mr.win
 


 

No. 8



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : mr.win เมื่อวันที่ 2015-02-02 17:37:00
รายละเอียดของการตอบ ::
strtotime แปลงแล้วแต่วินาทีที่โชใน หน้าweb มันออกเป็น 00 แต่ในฐานข้อมูล เป็น 04 ครับ ข้อนี้ล่ะครับที่ผมสงสัย

ส่วนเหตุผลที่ผมใช้ new datetime ถ้าไม่ใส่มันจะฟ้อง error ดังนี้ครับ
Quote:
Warning: date_format() expects parameter 1 to be DateTime, string given in


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 17:44:59 By : BL@CK
 


 

No. 9



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


[tb_reportslist].dtDateTime ,

Code (SQL)
CONVERT(VARCHAR(24),[tb_reportslist].dtDateTime,113)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-02 20:27:28 By : Chaidhanan
 


 

No. 10



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (PHP)
echo date('d/m/Y - H:i:s',strtotime('Feb 2 2015 12:01AM'));


แบบนี้ได้ไหม๊ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-03 09:37:30 By : mr.win
 


 

No. 11



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ

ขอบคุณทุกๆความคิดเห็นครับ

สรุปแล้วต้องแปลงคำสั่ง SQL ตรง SELECT จาก [tb_reportslist].dtDateTime เป็น

Code
(CONVERT(NVARCHAR(24),[tb_reportslist].dtDateTime,120))as dtDateTime


แล้วต้องแปลงฟิว dtDateTime เป็นวันที่อีกครั้งถึงจะ WHERE วันที่ได้

Code
WHERE (CONVERT(date, tb_reportslist.dtDateTime)) BETWEEN '".$datestart."' AND '".$dateend."' ";


การแสดงผลก็สามารถกำหนดรูปแบบที่ผมต้องการในหน้าเว็บได้

Code
echo "<td>".date_format(new DateTime($row[dtDateTime]),'d/m/Y - H:i:s')."</td>";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-03 11:11:44 By : BL@CK
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

จัดไปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-03 11:19:43 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : แปลงรูปแบบของ datetime แล้ว วินาทีไม่ออก กลายเป็น 00 แทน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่