有两个问题。我传递了一个像 05/16/1978 这样的日期,我希望它被转换为对 MySQL 表的 datetime 字段友好的格式。
其次,如何在 php 中获取当前时间?有点像 17:22:59
你会想要调查
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://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);
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 格式返回当前时间。
阅读这篇PHP 和 MySQL博客文章中的日期,我认为它可能会对您有所帮助。
它总结了三种使用 PHP 管理存储在 MySQL 中的日期的可能性。那里提到的一种常见方法是:
一种常见的解决方案是将日期存储在 DATETIME 字段中,并使用 PHP 的 date() 和 strtotime() 函数在 PHP 时间戳和 MySQL DATETIME 之间进行转换。
例如:
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );
希望它可以帮助你。
使用此代码:
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);