簡體   English   中英

引導日期時間選擇器日期格式保存到MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM