有两个问题。 我传递了一个类似于05/16/1978的日期,我希望它转换为对MySQL表的日期时间字段友好的格式。
其次,你如何获得PHP的当前时间?像17:22:59这样的东西
答案 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实施时间戳,这是一个很棒的工具 -
答案 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);