-2

有两个问题。我传递了一个像 05/16/1978 这样的日期,我希望它被转换为对 MySQL 表的 datetime 字段友好的格式。

其次,如何在 php 中获取当前时间?有点像 17:22:59

4

5 回答 5

5

你会想要调查

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

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

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

查看日期函数文档以获取有关可能的格式的详细信息...

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


如果您决定通过 EPOCH 实现您的时间戳,这是一个非常棒的工具供您使用 -

http://www.epochconverter.com/

于 2012-05-01T12:31:23.343 回答
1

请看一下这个链接

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

例如

$d = "05/16/1978";
list($month, $day, $year) = explode("/",$d);
$datetime = sprintf("%d-%d-%d", $year, $month, $day);
于 2012-05-01T12:31:26.027 回答
1

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

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

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

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

于 2012-05-01T12:32:46.757 回答
1

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

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

例如:

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

希望它可以帮助你。

于 2012-05-01T12:33:33.507 回答
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;
}

如果您包括时间,请在给定日期之后放置一个 true。

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

于 2012-05-01T12:57:46.387 回答