HTML5中的日期标记(<input type="date">
)始终以YYYY-MM-DD格式发送数据,而忽略用户可能使用的格式。这很好,但浏览器的默认控件通常很难看。
所以,我正在尝试使用bootstrap-datepicker来帮助用户选择日期。我像这样启动它,它打开正确:
$('#expirationDate').datepicker({
format: "dd.mm.yyyy"
});
不幸的是,bootstrap-datepicker
似乎以用户的格式向服务器发送所选日期(即DD / MM / YYYY)。这显然是一个问题,因为用户可能有不同的偏好。
bootstrap-datepicker
是否能够以“YYYY-MM-DD”格式发送数据,无视用户的本地格式?对我而言,这是“常识”功能,但我没有'找到有关它的任何文件。
如果上述问题的答案为“否”,您能否推荐另一个与Symfony 3和Twig完美整合的日期选择器?
答案 0 :(得分:0)
将来电者功能更改为:
$('#sandbox-container input').datepicker({
format: "dd/mm/yyyy"
});
O /
答案 1 :(得分: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"
})
&#13;
<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" />
&#13;
答案 2 :(得分:0)
似乎没有javascript或php处理就不可能。这真是令人难过,因为这是一个非常普遍的情况。
我的解决方案是使用JQuery UI
代替bootstrap-datepicker
。我创建了两个字段:
在第二个字段中,我使用altField和altFormat填充第一个字段:
$(function () {
$("#theDateUI").datepicker({
dateFormat: "dd.mm.yy",
altField: $("#theDate"),
altFormat: "yy-mm-dd"
});
});