|
|
|
พี่ๆ คะ มีวิธีให้ datepicker แสดงวันที่เป็น0000-00-00 ไหมคะ |
|
|
|
|
|
|
|
เวลากรอกลงปฏิทินเป็น 0000-00-00 อะคะ ในดาต้าเบสก็บันทึกเป็นวันที่ดังกล่าวนะคะ
แต่ใน datepicker มันแสดงเป็น 2513-01-01 อะค่ะ
มีวิธีไหนพอแก้ได้บ้างไหมคะ ขอบคุณล่วงหน้าค่ะ
function ของ datepicker มี datepicker 2 ช่องค่ะ
Code (PHP)
<script type="text/javascript">
$(function(){
var startDateTextBox = $('#Txtacy_start');
var endDateTextBox = $('#Txtacy_end');
var d = new Date();
var toDay = (d.getFullYear() + 543) + '-' + (d.getMonth() + 1) + '-' + d.getDate();
startDateTextBox.datepicker({
changeMonth: true,
changeYear: true,dateFormat: 'yy-mm-dd',
isBuddhist: true,
defaultDate: toDay,dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
onClose: function(dateText, inst) {
if (endDateTextBox.val() != '') {
var testStartDate = startDateTextBox.datetimepicker('getDate');
var testEndDate = endDateTextBox.datetimepicker('getDate');
if (testStartDate > testEndDate)
endDateTextBox.datetimepicker('setDate', testStartDate);
}
},
onSelect: function (selectedDateTime){
endDateTextBox.datetimepicker('option', 'minDate', startDateTextBox.datetimepicker('getDate') );
}
});
endDateTextBox.datepicker({
changeMonth: true,
changeYear: true,dateFormat: 'yy-mm-dd',
isBuddhist: true,
defaultDate: toDay,dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
onClose: function(dateText, inst) {
if (startDateTextBox.val() != '') {
var testStartDate = startDateTextBox.datetimepicker('getDate');
var testEndDate = endDateTextBox.datetimepicker('getDate');
if (testStartDate > testEndDate)
startDateTextBox.datetimepicker('setDate', testEndDate);
}
else {
startDateTextBox.val(dateText);
}
},
onSelect: function (selectedDateTime){
startDateTextBox.datetimepicker('option', 'maxDate', endDateTextBox.datetimepicker('getDate') );
}
});
});
</script>
Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2016-03-26 13:42:20 |
By :
baramos08 |
View :
1257 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วหน้าที่ส่งค่า datepicker มันส่งค่าไป ได้ค่าว่าอะไร ลองเอาค่ามาดูหน่อยครับ
print_r($_POST);
จะได้รู้ว่าค่ามันส่งไปจริงไหม ส่งตัวแปรอะไรไป
อีกอย่างถ้าเป็น Datepicker ต่างๆที่แจกไว้ ถ้าไม่ได้ set อะไรพิเศษ มันจะส่งค่า เป็น ปีคศ.-เดือน-วัน yyyy-mm-dd
แต่ถ้ามันไม่เข้า Database สันนิษฐานได้ว่า รูปแบบมาไม่ตรง คงต้อง substr เพื่อสลับตำแหน่ง ให้มันตรงตาม db
แต่จากที่ดู code ไม่คุ้นกลับ datepicker ตัวที่ให้มาครับ
|
ประวัติการแก้ไข 2016-03-26 16:51:06
|
|
|
|
Date :
2016-03-26 16:40:49 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : apisitp เมื่อวันที่ 2016-03-26 16:40:49
รายละเอียดของการตอบ ::
อันนี้คือเวลากรอกข้อมูลลงไปนะคะ
ผลลัพธ์ที่ได้ค่ะ
ตรงส่วนของช่อง input มีโค้ดดังนี้ค่ะ Code (PHP)
<tr>
<td height="35" bgcolor="f8e63c"><span class="fonts">วันที่เริ่ม </span></td>
<td>::</td>
<td><input name="Txtacy_start" type="text" id="Txtacy_start" placeholder="ปป-ดด-วว" value="<?php
if($method=="edit"){echo date_short_number($eng_date=strtotime($rs['acy_start']));} ?>"> </td>
</tr>
<tr>
<td height="35" bgcolor="f8e63c"><span class="fonts">วันที่สิ้นสุด </span></td>
<td>::</td>
<td><input name="Txtacy_end" type="text" id="Txtacy_end" placeholder="ปป-ดด-วว" value="<?php
if($method=="edit"){echo date_short_number($eng_date=strtotime($rs['acy_end']));} ?>"> </td>
</tr>
ฟังก์ชันสำหรับเปลี่ยน คศ ให้เปลี่ยน พศ ค่ะ
Code (PHP)
function date_short_number($time){
global $thai_day_arr_short,$thai_month_arr_short;
$thai_date_return=(date("Y",$time)+543);
$thai_date_return.="-".$thai_month_arr_short[date("n",$time)];
$thai_date_return.= "-".$thai_day_arr_short[date("j",$time)];
return $thai_date_return;
}
อันนี้เป็นโค้ดที่เปลี่ยนพศ ให้เป็น คศ ลงดาต้าเบสค่ะ
Code (PHP)
$Txtacy_start = explode('-', $_POST["Txtacy_start"]);//รับค่า Txtacy_start มา
//echo"<br>Txtacy_start-->$Txtacy_start";
$Txtacy_start = implode('-', array($Txtacy_start [0]-543, $Txtacy_start [1], $Txtacy_start [2]));//เปลี่ยน ค.ศ.ให้เป็น พ.ศ.
echo"<br>Txtacy_start-->$Txtacy_start";
$Txtacy_end = explode('-', $_POST["Txtacy_end"]);//รับค่า Txtacy_end มา
//echo"<br>Txtacy_end-->$Txtacy_end";
$Txtacy_end = implode('-', array($Txtacy_end [0]-543, $Txtacy_end [1], $Txtacy_end [2]));//เปลี่ยน ค.ศ.ให้เป็น พ.ศ.
echo"<br>Txtacy_end-->$Txtacy_end";
คือตอนเวลาเพิ่มข้อมูลที่ไม่ใช่ 0000-00-00 เพิ่มได้ปกติเลยค่ะ แต่พอเพิ่มดังภาพ ในดาต้าเบสบันทึกเป็น 0000-00-00 แต่ปฏิทินแสดงเป็น 2513-01-01
ขอบคุณล่วงหน้าค่ะ
|
ประวัติการแก้ไข 2016-03-26 17:18:55 2016-03-26 17:22:44 2016-03-26 17:39:59
|
|
|
|
Date :
2016-03-26 17:17:46 |
By :
baramos08 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0000-00-00 พอเข้า datepicker จะ เท่ากับ 1970-01-01
เพราะ 0000-00-00 ไม่สามารถแปลงวันที่ปกติได้ เลยถือเป็น error
ก็จะใส่ค่า เริ่มต้น ให้ซึ่งก็คือค่า 1970-01-01 แปลงเป็นไทย ก็จะได้ 2503-01-01 ครับ
|
|
|
|
|
Date :
2016-03-26 19:14:54 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|