我正在使用Twitter引导程序,css和js在php中工作;我的问题是,当我使用引导日期选择器时,该值是格式为:dd-mm-yyyy
这是我的代码:
<div class="control-group">
<label class="control-label">Next Call</label>
<div class="controls">
<div class="input-append date" id="datepicker" data-date="dateValue: Customer.DateOfBirth" data-date-format="dd-mm-yyyy">
<input type="text" name="date" data-bind="value: Customer.DateOfBirth" readonly />
<span class="add-on"><i class="icon-calendar"></i></span>
</div>
</div>
</div>
现在,在我的另一个按日期搜索的页面中,我必须根据数据库提交日期,以便匹配并给我搜索值,所以我这样做是为了匹配 databse 的值,因为我们知道数据库以yyyy-mm-dd
格式存储它,所以我将行更改为:
<div class="input-append date" id="datepicker" data-date="dateValue: Customer.DateOfBirth" data-date-format="dd-mm-yyyy">
但是现在我的问题是,当用户选择日期值时,它在文本框中显示为: yyyy-mm-dd
,我想将其显示为 dd-mm-yyyy,并希望将其发布为 yyyy-mm-dd。我怎样才能实现它?
假设
-
所以我的理解是,您目前可以将日期显示为
dd-mm-yyyy
或在客户端显示yyyy-mm-dd
-
然后,将此值作为表单提交到站点 (
php
)POST
或GET
解决方案
给出上述假设,您有两个基本选择。一种是使用客户端技术在发送到服务器之前更改日期(例如 JS
) 或更改它服务器端(通过 PHP
)。
鉴于您已经包含了标签PHP
而不是JS
;我们将专注于此。
方法 1
$date = $_POST['date']; // 14-10-2013
$new_date = preg_replace('/('d+)-('d+)-('d+)/', '$3-$2-$1', $date); // 2013-10-14
方法 2
$date = $_POST['date']; // 14-10-2013
$date_array = explode('-', $date);
$new_date = $date_array[2].'-'.$date_array[1].'-'.$date_array[0]; // 2013-10-14
方法 3
$date = $_POST['date']; // 14-10-2013
$date_object = new DateTime($date);
$new_date = $date_object->format('Y-m-d'); // 2013-10-14
实现
您可以使用上述任何方法并将代码更改为:
$insert_date = mysql_real_escape_string($new_date);
$query = "INSERT INTO `comments` SET `date` = '{$insert_date}'";
因此,您的最终代码将如下所示:
$date = $_POST['date']; //Date from user input
$date_object = new DateTime($date);
$new_date = $date_object->format('Y-m-d');
$insert_date = mysql_real_escape_string($new_date);
$query = "INSERT INTO `comments` SET `date` = '{$insert_date}'";
你可以有一行代码,比如-
//suppose $_POST['date'] has 22-09-1990
$dd = $_POST['date'];
$dates = explode('-', $dd);
现在你的查询会像 -
$qry = "INSERT INTO TBLXZ (datecol) VALUES('".$dates[2]."-".$dates[1]."-".$dates[0]."')";
我假设表TBLXZ
只有一列datecol
类型为 Datetime
.
希望这会有所帮助。