以MySQL友好的方式获取日期信息

时间:2012-05-01 12:27:14

标签: php mysql date

有两个问题。 我传递了一个类似于05/16/1978的日期,我希望它转换为对MySQL表的日期时间字段友好的格式。

其次,你如何获得PHP的当前时间?像17:22:59这样的东西

5 个答案:

答案 0 :(得分:5)

你想看看

  • strtotime() - 将任何英文文本日期时间描述解析为Unix时间戳
  • time() - 返回当前的Unix时间戳
  • date() - 格式化当地时间/日期

使用date()函数,您可以传递EPOCH时间戳,并以您想要的任何格式返回表示时间戳的字符串 -

$now = time();
$today = date("M d Y",$now);  // May 01 2012

查看date function documentation,了解有关可能格式的详细信息......

您始终可以以EPOCH格式存储日期(自1970年1月1日起的秒数)。我发现使用和操作EPOCH时间戳非常容易。我在数据库中使用INT(10)字段来存储这些值。


如果您决定通过EPOCH实施时间戳,这是一个很棒的工具 -

http://www.epochconverter.com/

答案 1 :(得分:1)

请看一下这个链接

http://php.net/manual/en/class.datetime.php

e.g。

$d = "05/16/1978";
list($month, $day, $year) = explode("/",$d);
$datetime = sprintf("%d-%d-%d", $year, $month, $day);

答案 2 :(得分:1)

DATETIME格式为YYYY-MM-DD,为了将结果转换为该格式,您可以

$date = "05/16/1978";
list($month, $day, $year) = explode("/",$date);
$datetime = sprintf("%d-%d-%d", $year, $month, $day);

$datetime现在包含“1978-16-15”,MySQL会理解。

date('G:i:s')将以H:m:s格式返回当前时间。

答案 3 :(得分:1)

阅读此Dates in PHP and MySQL博客文章,我认为它可能会对您有所帮助。
它总结了三种使用PHP管理存储在MySQL中的日期的可能性。这里提到的一种常见方式是:

  

一个常见的解决方案是将日期存储在DATETIME字段中,并使用PHPs date()和strtotime()函数在PHP时间戳和MySQL DATETIME之间进行转换。

例如:

$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );

希望它对你有所帮助。

答案 4 :(得分:1)

使用此代码:

function convert_time_sql($date){
    $date = strtotime($date);
    $date = date("Y-m-d ",$date).date("G:i:s");
    return $date;
}

这将返回sql格式时间

注意:日期必须是正确的格式,请参阅:

http://www.php.net/manual/en/function.strtotime.php

http://www.php.net/manual/en/datetime.formats.date.php

修改

如果包含时间,请使用此功能:

function convert_time_sql($date,$time_included=false){
    $date = strtotime($date);
    $date = date("Y-m-d ".($time_included?"G:i:s":""),$date).($time_included?"":date("G:i:s"));
    return $date;
}

如果包含时间,请在给定日期之后加上真实。

喜欢convert_time_sql('05/16/1978 05:45:59 AM',true);