如何更改日期显示而不更改其发布格式

时间:2013-10-14 09:48:41

标签: php twitter-bootstrap datepicker date-format

我正在使用twitter bootstrap,css和js在php上进行项目;我的问题是,当我使用bootstrap日期选择器时,该值的格式为: 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>

现在在我的另一个按日期搜索的页面中,我必须根据数据库提交日期,以便匹配并给我搜索值,所以我这样做是为了匹配数据库中的值,因为我们知道数据库存储在{{ 1}}格式所以我将行更改为:

yyyy-mm-dd

但现在我的问题是当用户选择日期值时,它在文本框中显示为: <div class="input-append date" id="datepicker" data-date="dateValue: Customer.DateOfBirth" data-date-format="dd-mm-yyyy"> 我希望将其显示为 dd-mm-yyyy ,并希望将其发布为 yyyy-mm-dd 。我怎样才能实现它?

2 个答案:

答案 0 :(得分:1)

您可以使用代码行 -

//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只有一列datecolDatetime类型。

希望这会有所帮助。

答案 1 :(得分:1)

Assumtions

  1. 所以我的理解是,您目前能够在客户端显示日期dd-mm-yyyyyyyy-mm-dd

  2. 然后,您可以将此值作为表单提交到网站(php):POSTGET

  3. 将(S)

    给出上述假设,然后你有两个基本的选项。一种是在使用客户端技术(例如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}'";
    
相关问题