[英]bootstrap datetimepicker dateformat saving to mysql
我嘗試了幾種方法來轉換使用datetimepicker選擇的日期,以將其保存在我的mysql數據庫中,但是它們都不起作用。
我想保存這種格式:
10 Octobre 2015 - 12:28 pm
但我有這個保存:
01 Jan 1970
有什么建議么? 很多tks
我選擇日期的代碼:
<div class="input-group date form_datetime col-md-6" data-date-format="dd MM yyyy - HH:ii p" data-link-field="dtp_input1">
<input class="form-control" name="date_from" size="16" type="text" value="" readonly>
</div>
並保存:
$date_from=$_POST['date_from'];
$query = $db->prepare('INSERT INTO events (date_from, title)
VALUES (:date_from, :titre)');
聚會晚了一點,但是您可以使用以下內容在提交時獲取輸入。 它是為轉換多個輸入而設計的,但如果需要,也可以將其編輯為僅在一個輸入上運行。
以下內容允許您以12小時格式顯示時間選擇,以及將datetimepicker js應用於任何動態創建的元素。
$(document).on("mouseover mouseout", ".datetimepicker", function(){
$(this).datetimepicker({
format:'YYYY-MM-DD hh:mm:00 a'
})
});
順便說一句,datetimepicker需要moment.js,因此在提交之前,請運行它以保存到mysql。
$('form').submit( function () {
$('.datetime').each( function() {
$(this).val(moment(new Date($(this).val())).format("YYYY-MM-DD HH:mm:ss"))
});
})
要顯示您提到的時間,您可能需要在渲染日期時將樣式應用於日期。
將您的MySQL字段設置為DATETIME
列,然后對datetimepicker執行此操作:
$('#input').datetimepicker(
'dateFormat': "yy-mm-dd",
'timeFormat': "HH:mm:ss"
);
關於Bootstrap日期選擇器,有些事情要知道。
首先,它不是用來處理表單提交事件的,因此,當您設置data-date-format =“ dd MM yyyy-HH:ii p”時,您將獲得該POST字符串。 這意味着需要預處理。
您可以在客戶端或服務器端執行此操作。 總是在客戶端方面做得更好,這樣可以節省我們服務器的資源。 您還可以在PHP內構建一個函數,以將POST字符串轉換為MySQL格式。
請記住,如果您在客戶端進行處理,則需要以MySql格式發送POST(DATE為YYYY-mm-dd)或DATETIME或TIMESTAMP為(YYYY-mm-dd H:i:s)
例如://用Mysql格式格式化datetimepicker
$("input[name='date_from']").datepicker().on('changeDate', function(e){
var dateFrom = new Date(e.date.getFullYear(), e.date.getMonth(), e.date.getDate(), e.date.getHours(),e.date.getMinutes(),0);
});
現在,您可以將此值推送到隱藏字段中:HTML:
<input id="sqldate_from" type="hidden" name="sqldate_from" />
腳本:
$("input[name='date_from']").datepicker().on('changeDate', function(e){
var dateFrom = new Date(e.date.getFullYear(), e.date.getMonth(), e.date.getDate(), e.date.getHours(),e.date.getMinutes(),0);
});
$("#sqldate_from").val(dateFrom);
PHP:
$date_from = $_POST['sqldate_from'];
您也可以不用PHP進行處理就可以獲取原始字符串...類似這樣(僅適用於YYYY-mm-dd格式):
public function formatDatepickerToMySql($date) {
if ($date != FALSE) {
$dateArr = explode("-", $date);
$newDate = $dateArr[2] . '-' . $dateArr[1] . '-' . $dateArr[0];
return $newDate;
}
return FALSE;
}
希望有用
KR apassos
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.