2017-06-17 97 views
0

HTML5中的日期標記(<input type="date">)總是以YYYY-MM-DD格式發送數據,而忽略用戶可能使用的格式。這很好,但瀏覽器的默認控件通常很難看。bootstrap-datepicker發送錯誤的日期格式

所以,我正在嘗試使用bootstrap-datepicker來幫助用戶選擇日期。我啓動它這個樣子,和它打開正確:

$('#expirationDate').datepicker({ 
    format: "dd.mm.yyyy" 
}); 

不幸的是,bootstrap-datepicker似乎發送到服務器選擇的日期用戶的格式(即DD/MM/YYYY)。這顯然是一個問題,因爲用戶可能有不同的偏好。

bootstrap-datepicker能否以「YYYY-MM-DD」格式發送數據,不管用戶的本地格式?對我來說,這是「常識」功能,但我沒有找到任何有關它的文檔。

如果上述問題的答案是「否」,您能否推薦另一個與Symfony 3和Twig很好集成的日期選擇器?

+0

檢查我的答案.... –

回答

0

似乎是不可能無javascript或php處理。這很令人傷心,因爲這是一個非常普遍的情況。

我的解決方案是使用JQuery UI而不是bootstrap-datepicker。我創建了兩個領域:

  • 存儲在YYYY-MM-DD日期的隱藏字段,其值在後端
  • 加工所使用的DatePicker可見的領域,但它不是由後端處理。

在第二場,我用altFieldaltFormat填充第一場:

$(function() { 
    $("#theDateUI").datepicker({ 
      dateFormat: "dd.mm.yy", 
      altField: $("#theDate"), 
      altFormat: "yy-mm-dd" 
    }); 
}); 
0

更改來電顯示功能,這樣的:

$('#sandbox-container input').datepicker({ 
 
    format: "dd/mm/yyyy" 
 
});

O/

+0

...請編輯您的片段,並添加庫文件引導..與工作片段 –

+0

我這樣做了,但它會將日期以dd-mm-yyyy格式發送到服務器。我想要的是讓用戶選擇在「DD-MM-YYYY」格式的日期,但它發送到服務器「YYYY-MM-DD」格式 – user3429660

0

在PHP

mysql數據庫需要日期格式Y-m-d格式,以便在情況將此日期格式插入數據庫中您將需要更改來自datepicker的日期格式。

實施例:

$mydate = date("Y-m-d", strtotime($_POST['date'])); 

$("#Date").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd-mm-yyyy" 
 
}) 
 

 

 
$("#Date2").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy-mm-dd" 
 
}) 
 

 
$("#Date3").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy-M-dd" 
 
}) 
 

 
$("#Date4").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd-M-yyyy" 
 
}) 
 

 

 
$("#Date5").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd/M/yyyy" 
 
}) 
 

 
$("#Date6").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy/M/dd" 
 
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"/> 
 
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/css/bootstrap-datepicker3.css" rel="stylesheet"/> 
 

 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/js/bootstrap-datepicker.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script> 
 

 
1) dd-mm-yyyy : <input type="text" id="Date" placeholder="01-12-2016" /> 
 
<br><br> 
 

 
2) yyyy-mm-dd : <input type="text" id="Date2" placeholder="2016-12-01" /> 
 
<br><br> 
 
3) yyyy-M-dd : <input type="text" id="Date3" placeholder="2016-Dec-01" /> 
 
<br><br> 
 
4) dd-M-yyyy : <input type="text" id="Date4" placeholder="01-Dec-2016" /> 
 
<br><br> 
 
5) dd/M/yyyy : <input type="text" id="Date5" placeholder="01/Dec/2016" /> 
 
<br><br> 
 
6) yyyy/M/dd : <input type="text" id="Date6" placeholder="2016/Dec/01" />

+0

我這樣做,但它會日期發送到服務器DD -mm-yyyy格式。我想要的是讓用戶選擇在「DD-MM-YYYY」格式的日期,但它發送到服務器「YYYY-MM-DD」格式 – user3429660

+0

你店前更改格式數據庫 –

+0

可我知道在語言,你實際工作.. –