ขอความช่วยเหลือ การแปลง ว/ด/ป จาก เดือน/วัน/ปี (03/20/2554) ให้เป็น ปี/เดือน/วัน (2554/03/20) ครับ
วิธีการสลับตำแหน่งครับ
Code (PHP)
$date = $_POST["invdate"];
list($da, $mo, $ye) = split("/",$date);
$date = $ye.$mo.$da; //สลับตำแหน่งจาก 02022011 เป็น 20110202
Date :
2013-03-12 16:27:15
By :
vissarud
น่าจะประมาณนี้นะครับ ผม assume เอาจาก คำถามนะครับ
Code (PHP)
$input = '12/03/2555'; // สมมติ input ที่มาจาก date picker
$input = explode('/',$input);
$input[2] -= 543; //ปรับเป็น ค.ศ.
echo date('Y-m-d',strtotime(implode('-',$input))); //ค่าที่ได้จากตรงนี้ ก็เอาไปทำ query ต่อ
ประวัติการแก้ไข 2013-03-12 17:16:05 2013-03-12 17:19:07 2013-03-12 17:20:09
Date :
2013-03-12 17:15:00
By :
pmmaster
ขอบคุณ คุณvissarud และคุณpmmaster มากครับ ขอถามต่อนะคับ ทีแรกคิดว่ามันดึงข้อมูลจากMySQL ไม่ได้เพราะ format วันที่ไม่ตรงกัน แต่ลอง echo ค่าที่ได้จากปฏิทินมาดูแล้ว ไม่ได้ครับ รบกวนช่วยดู code การรับส่งค่าจากdatepicker ให้หน่อยนะคับ ยังมือใหม่อะคับ ขอบคุณมากครับ
Date :
2013-03-13 14:49:30
By :
maximumoflove
<?
$input = $_GET["datepicker"]; // สมมติ input ที่มาจาก date picker
$input = explode('/',$input);
//$input[2] -= 543; //ปรับเป็น ค.ศ.
echo date('Y-m-d',strtotime(implode('-',$input))); // ตรงนี้ก็จะแสดง ป/ด/ว ใช่ไหมคับ
?>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>::รายงานปะจำวัน::</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
</head>
<body>
<form name="frmSearch" method="get" >
<p align="center" ><font size="6" ><B>ค้นหา วันที่ออกรายงาน</B></font></p>
<br> <p align="center">Date: <input name="txtdate" type="text"
id="datepicker" value="<?=$_GET["datepicker"];?>"></p> <?//=$_GET["datepicker"];?>
<p align="center"><input type="submit" value="ค้นหา" ></p>
<? echo $date; ?>
</body>
</html>
Date :
2013-03-13 15:03:52
By :
maximumoflove
ผมอาจจะงงต่อสิ่งที่คุณ maximum ถาม ลองเรียบเรียงคำถามใหม่หน่อยครับ
ใช่แบบที่ผมคิดมั้ยครับ
1. ใช้ date picker เพื่อเลือกค่าวันที่ ที่ต้องการ
2. ส่งค่าไป query ข้อมูลโดยใช้ค่า วันที่ ที่เลือกมา
3. แสดงข้อมูลที่ตรงกับ วันที่ ที่เลือก
ประวัติการแก้ไข 2013-03-13 23:48:05
Date :
2013-03-13 23:45:55
By :
pmmaster
เท่าที่ดูจาก code และเดาจากจุดประสงค์ของคุณ maximum นะครับ แก้ code ดังนี้ครับ
1. php tag พยายามใช้
Code (PHP)
<?php //code ?>
ครับ
2.ถ้าหากเป็นการส่ง request จาก form ไปยัง php ควรมีการตรวจสอบตัวแปร GET ก่อน จากนั้นค่อยนำมาใช้งานครับ
3. <form> ต้อง กำหนด attribute target ด้วยครับ และปิด tag ด้วยครับ
4. ไม่ต้องนำ ค่า GET มา echo ใส่ value ของ <input> ครับ ด้วยกลไกของ datepicker พอเราเลือก value มันจะถูก set ให้อยู่แล้วครับ
5. การจะส่งค่า เมื่อ กด submit form มันจะส่งค่าผ่านตัวแปร ที่ถูกกำหนดด้วย attribute name ดังนั้น ตอนรับค่า ควรรับด้วย
$_GET['datetxt'];
6. ตรงจุดนี้ error แน่ครับ
<? echo $date; ?>
เพราะไม่มีการประกาศตัวแปรนี้มาก่อน
Date :
2013-03-14 00:33:36
By :
pmmaster
ขอบคุณ คุณ pmmaster มากครับอธิบายละเอียดเลย ตอนนี้ ผมลองแก้ แล้ว echo ออกมาดูได้แล้วคับ แปลงตำแหน่ง แปลงตำแหน่งว/ด/ป ตาม MySQL ได้แล้วครับ ส่วนที่เหลือ ที่ยังไม่ได้เป็น่การนำค่าไป เปรียบเทียบ กับ ว/ด/ป ในDB ครับ รบกวนดู code ให้อีกหน่อยนะคับ ว่าผิดตรงไหนคับ
Code (PHP)
<?php
$input = $_GET["datepicker"]; // สมมติ input ที่มาจาก date picker
$input = explode('/',$input);
$paradate= strtotime(implode('-',$input));
$dateinput=date('Y-m-d',$paradate); // ค่าที่ได้จากตรงนี้ ก็เอาไปทำ query ต่อ
echo $dateinput;
include 'Connect2.php';
// Search By first name or id_population
$strSQL = "SELECT * FROM pay_tax_building WHERE (pay_date LIKE '%".$dateinput."%')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
Date :
2013-03-14 01:31:17
By :
maximumoflove
บอกผมว่า เกิด error อะไรดีกว่าครับ หรือไม่ก็นำ error มาให้ผมดูจะตอบได้ตรงจุดกว่าครับ
ประวัติการแก้ไข 2013-03-14 03:24:13
Date :
2013-03-14 03:21:53
By :
pmmaster
มันไม่ขึ้น error คับ คงติดตรงที่นำค่าจาก การแปลง ว/ด/ป ไปquery คับ จาก code อันล่าสุด ไม่แน่ใจผมใช้คำสั่ง SQL และ ตัวแปร ถูกหรือเปล่า คับ
Date :
2013-03-14 03:41:32
By :
maximumoflove
ของแบบนี้ต้องลอง ครับ
ถ้าให้ผมแนะนำคงเป็น sql ครับ ใช้แบบนี้จะตรงจุดมากกว่าครับ
Code (SQL)
"SELECT * FROM `pay_tax_building` WHERE DATE(`pay_date`)='$dateinput'"
หรือ
"SELECT * FROM `pay_tax_building` WHERE `pay_date` BETWEEN '$dateinput' AND '$dateinput 23:59:59'"
ประวัติการแก้ไข 2013-03-14 03:58:49
Date :
2013-03-14 03:51:03
By :
pmmaster
วิธีแก้ที่ดีที่สุดคือ ตั้งค่า datepicker ใหม่ครับ
เพราะมันสามารถตั้งเป็น Format อื่นได้
http://api.jqueryui.com/datepicker/#option-dateFormat
ปี/เดือน/วัน
$( "#yourdatepicker" ).datepicker({ dateFormat: "yy/mm/dd" });
แต่ค่าที่ส่งไปก็ยังคงจะเป็นปี ค.ศ.อยู่ ดังนั้นต้องแปลงใน PHP
สมมติว่า datepicker ชื่อ date และตัวแปรที่จะอ่านใน PHP คือ $_POST['date']
// แยกเป็นตัวแปรส่วนต่างๆ ด้วย explode() โดยมี / เป็นตัวแยก
list($year, $month, $day) = explode('/', $_POST['date']);
// รวมกลับเป็น string ด้วย implode() โดยให้ array() เป็นค่าของส่วนที่แยกมา แต่เปลี่ยนแปลงเฉพาะปี (+543)
// โดยมี / เป็นตัวคั่น
$new_date = implode('/', array($year + 543, $month, $day));
Date :
2013-03-14 05:22:22
By :
cookiephp
ได้แล้วคับ ขอบคุณทุกท่านที่ให้คำแนะนำนะคับ
Date :
2013-03-14 14:47:16
By :
maximumoflove
Load balance : Server 01