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