bootstrap datetimepicker dateformat保存到mysql

时间:2015-10-15 22:37:34

标签: php mysql datetimepicker

我已经尝试了几种方法来转换使用datetimepicker选择的日期以将其保存在我的mysql数据库中,但它们都不起作用。

我想保存这种格式:

  10 Octobre 2015 - 12:28 pm

但我保存了这个:

 01 Jan 1970

有什么建议吗?许多人

我选择日期的代码:

<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)');

3 个答案:

答案 0 :(得分:1)

派对有点晚,但您可以使用以下内容获取提交输入。这是为转换多个输入而设计的,但如果您愿意,也可以编辑为仅在一个输入上运行。

以下内容允许您以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"))
    });
})

要显示您提到的时间,您可能需要将样式应用到呈现它的日期。

答案 1 :(得分:0)

将您的MySQL字段设置为Binary Oct Dec Hex Glyph 010 0000 040 32 20 (space) 010 0001 041 33 21 ! 010 0010 042 34 22 " 010 0011 043 35 23 # 010 0100 044 36 24 $ 010 0101 045 37 25 % 010 0110 046 38 26 & 010 0111 047 39 27 ' 010 1000 050 40 28 ( 010 1001 051 41 29 ) 010 1010 052 42 2A * 010 1011 053 43 2B + 010 1100 054 44 2C , 010 1101 055 45 2D - 010 1110 056 46 2E . 010 1111 057 47 2F / 011 0000 060 48 30 0 011 0001 061 49 31 1 011 0010 062 50 32 2 011 0011 063 51 33 3 011 0100 064 52 34 4 011 0101 065 53 35 5 011 0110 066 54 36 6 011 0111 067 55 37 7 011 1000 070 56 38 8 011 1001 071 57 39 9 011 1010 072 58 3A : 011 1011 073 59 3B ; 011 1100 074 60 3C < 011 1101 075 61 3D = 011 1110 076 62 3E > 011 1111 077 63 3F ? 100 0000 100 64 40 @ 100 0001 101 65 41 A 100 0010 102 66 42 B 100 0011 103 67 43 C 100 0100 104 68 44 D 100 0101 105 69 45 E 100 0110 106 70 46 F 100 0111 107 71 47 G 100 1000 110 72 48 H 100 1001 111 73 49 I 100 1010 112 74 4A J 100 1011 113 75 4B K 100 1100 114 76 4C L 100 1101 115 77 4D M 100 1110 116 78 4E N 100 1111 117 79 4F O 101 0000 120 80 50 P 101 0001 121 81 51 Q 101 0010 122 82 52 R 101 0011 123 83 53 S 101 0100 124 84 54 T 101 0101 125 85 55 U 101 0110 126 86 56 V 101 0111 127 87 57 W 101 1000 130 88 58 X 101 1001 131 89 59 Y 101 1010 132 90 5A Z 101 1011 133 91 5B [ 101 1100 134 92 5C \ 101 1101 135 93 5D ] 101 1110 136 94 5E ^ 101 1111 137 95 5F _ 110 0000 140 96 60 ` 110 0001 141 97 61 a 110 0010 142 98 62 b 110 0011 143 99 63 c 110 0100 144 100 64 d 110 0101 145 101 65 e 110 0110 146 102 66 f 110 0111 147 103 67 g 110 1000 150 104 68 h 110 1001 151 105 69 i 110 1010 152 106 6A j 110 1011 153 107 6B k 110 1100 154 108 6C l 110 1101 155 109 6D m 110 1110 156 110 6E n 110 1111 157 111 6F o 111 0000 160 112 70 p 111 0001 161 113 71 q 111 0010 162 114 72 r 111 0011 163 115 73 s 111 0100 164 116 74 t 111 0101 165 117 75 u 111 0110 166 118 76 v 111 0111 167 119 77 w 111 1000 170 120 78 x 111 1001 171 121 79 y 111 1010 172 122 7A z 111 1011 173 123 7B { 111 1100 174 124 7C | 111 1101 175 125 7D } 111 1110 176 126 7E ~ 列,然后对您的datetimepicker执行此操作:

DATETIME

答案 2 :(得分:0)

有一些关于Bootstrap datepicker的事情。

首先,它不能处理表单提交事件,因此当您设置data-date-format =&#34; dd MM yyyy - HH:ii p&#34;时,您将获得完全相同的POST字符串。这意味着需要预处理。

您可以通过客户端或服务器端进行此操作。始终是客户端更好的工作,以节省我们的服务器资源。您可以在PHP中构建一个函数,将您的POST字符串转换为MySQL格式。

请记住,如果您在客户端处理,则需要以MySql格式发送POST(YYYY-mm-dd表示DATE)或(YYYY-mm-dd H:i:s表示DATETIME或TIMESTAMP)

例: //使用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