在PHP中将时间更改为时间串

时间:2012-05-08 01:45:39

标签: php

在我的网站上,我们存储所有时间和日期格式如下:

表栏:日期 - 2012年1月16日 表栏:时间 - 下午06:36:50

这对那些生活在不同时区的人造成了问题,因此我们正在考虑将其更改为简单的time()字符串,但是因为我们网站上的大量内容已经有这样的时间(旧的,不是时间) ()字符串)在数据库中,我们希望保留这些数据,因此想知道我们如何将这些字符串更改为time()。

我理解如何更新数据库和所有,我实际上将16.01.201206:36:50转换为各自的time()字符串,因为strtotime喜欢完美的东西。

感谢您的时间,我期待您的建议。

3 个答案:

答案 0 :(得分:2)

您是在询问如何在数据库中进行转换,还是在将数据库加载到PHP时如何从数据库转换日期时间?

如果是后者,您可以通过多种方式设置日期格式。

取自对于date_format的PHP手册的评论:

    <?php

    $result = mysql_query("SELECT `datetime` FROM `table`");
    $row = mysql_fetch_row($result);
    $date = date_create($row[0]);

    echo date_format($date, 'Y-m-d H:i:s');
    #output: 2012-03-24 17:45:12

    echo date_format($date, 'd/m/Y H:i:s');
    #output: 24/03/2012 17:45:12

    echo date_format($date, 'd/m/y');
    #output: 24/03/12

    echo date_format($date, 'g:i A');
    #output: 5:45 PM

    echo date_format($date, 'G:ia');
    #output: 05:45pm

    echo date_format($date, 'g:ia \o\n l jS F Y');
    #output: 5:45pm on Saturday 24th March 2012

    ?>

这些只是一些例子。请查看this页面以获取更多想法。

根据评论进行修改:

您可以使用DateTime::createFromFormat,它允许您指定要传递的日期时间的格式。

答案 1 :(得分:1)

查找名为mysql

str_to_date函数

假设您有一个名为date_str的dbtable文本字段,其格式为YYYYMMDD。您可以使用ff查询输出正确的日期字段。

SELECT str_to_date(date_str, '%Y%m%D') as date_fld FROM dbtable ...

here's the link

答案 2 :(得分:0)

我知道这有点晚了,但我也认为这应该通过数据库完成。我认为这将删除一些额外的步骤,并且可能比使用PHP的日期格式化功能快一点。您可以编写如下所示的SQL语句:

"SELECT UNIX_TIMESTAMP(TIMESTAMP(STR_TO_DATE(Date, '%d.%m.%Y'), STR_TO_DATE(Time, '%r'))) AS epoch FROM Table"

这应该以您正在寻找的正确时间()格式返回所有内容。