繁体   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