转换日期如" 2014年5月21日星期三"到时间戳

时间:2014-05-21 15:52:57

标签: php

我用这种格式组成了一个日期选择器:dateFormat:'DD,d MM,yy'。

然后我有一个表格,

如果用户不选择日期,则它将采用以下格式的当前日期:echo date('l,j F,Y - H:i:s');并保存在数据库中。

如果用户填写输入日期,那么我想在数据库中保存这个填充日期。

问题是,在我的数据库中我得到这样的日期:0000-00-00 00:00:00。

我试图使用strototime将日期转换为时间戳,但我没有成功。

你知道我们怎么做到这一点吗?

<input type="text" class="datepicker"  name="date" value="if(isset($_POST['date'])) echo strtotime($f['date']); else echo date('l, j F, Y - H:i:s'); ?>" />

2 个答案:

答案 0 :(得分:1)

  

'Wednesday, 21 May, 2014'之类的日期转换为timestamp

我不确定您是如何使用insert语句使用输入的 但是你应该使用正确的date_format字符串,以便MySQL将其解释为有效的datetime字符串。

示例

select @dt:='Wednesday, 21 May, 2014' dt, 
       str_to_date( @dt, '%W, %d %M, %Y' ) ts;

我认为您使用了错误的格式字符串。最好使用'%W, %d %M, %Y'

示例

insert 
  into   table_name( timstamp_field )
 values( str_to_date( $date_time_input_by_user, '%W, %d %M, %Y' ) )

除非这是来自用户输入,否则您必须使用与MySQL日期格式字符串PHP匹配的不同''l, j F, Y - H:i:s''格式字符串

答案 1 :(得分:1)

<?php    
    $date = strtotime("Wednesday, 21 May 2014 18:32:09");
    $newformat = date("Y-m-d H:i:s", $date);
?>