PHP:在MySQL中拆分时间戳值中的日期和时间

6

我在数据库表中有一个名为“时间戳”的字段,它以以下格式存储值:YYYY-MM-DD HH: MM: SS。

我想将其拆分并获取日期(YYYY-MM-DD)和另一个变量中的时间(HH:MM:SS)。 例如:

$timestamp = "2012-10-19 18:19:56";
$get_date = "2012-10-19";
$get_time = "18:19:56";

我很乐意用PHP帮助任何人解决这个问题。
7个回答

16

您可以使用 PHP 的 explode() 函数,通过空格字符将字符串简单地拆分开来 -

$timestamp = "2012-10-19 18:19:56";
$splitTimeStamp = explode(" ",$timestamp);
$date = $splitTimeStamp[0];
$time = $splitTimeStamp[1];

另一种做法是使用strtotime()date()组合 -

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

3
很简单,使用explode函数,尝试以下代码即可:
$new_time = explode(" ",$timestamp);
$get_date = $new_time[0];
$get_time = $new_time[1];

3
你可以使用 explode 函数;此外,list 函数可以让你的代码略微更短:
list($get_date, $get_time) = explode(" ", "2012-10-19 18:19:56");
var_dump($get_date, $get_time);

1
如果您的时间戳格式为“2018年1月1日15:00:01”,使用explode()函数只会返回日期“1”。使用DateTime类是完美的解决方案。
$timestamp = new DateTime("2011-08-04 15:00:01");
$date = $timestamp->format('Y-m-d');
$time = $timestamp->format('H:i:s');

嗨@8cent,使用DateTime的好解决方案,请尝试提供不仅仅是代码的答案,尝试回答为什么您发布了这个答案,以及为什么它是一个有价值的解决方案。 - Duncanmoo
如果您的时间戳格式为“1 Jan 2018 15:00:01”,使用 explode() 函数仅会返回“1”。使用 DateTime 是完美的解决方案。 - 8cent.com

1
$timestamp = "2012-10-19 18:19:56";

$splits =  explode(" ",$timestamp);

$get_date = $splits[0];

$get_time = $splits[1];

0

不要使用explode函数,你可以像这样简单地完成。这将帮助你处理任何格式的数据。

echo $timestamp = "2012-10-19 18:19:56";
echo '<br>';
echo $data = date('Y-m-d',strtotime($timestamp));
echo '<br>';
echo $time = date('H:i:s',strtotime($timestamp));

输出

2012-10-19 18:19:56
2012-10-19
18:19:56

-1

看看这个 PHP Fiddle:

http://phpfiddle.org/lite?code=%3C?php\n\n$datetime%20=%20%2228-1-2011%2014:32:55%22;\nlist($date,%20$time)=explode(%27%20%27,%20$datetime);\n\n//%20check%20the%20result\necho%20%22date:%22.%20$date;\necho%20%22%3Cbr%3Etime:%22.%20$time;\n\n//%20further%20more%20you%20can%20easily%20split%20the%20date%20into\n//%20year%20month%20and%20day\nlist($year,%20$month,%20$day)=explode(%27-%27,%20$date);\n\n?%3E\n


请考虑添加一些关于您在 Fiddle 中所做内容的文本,并确保您的链接显示正确,因为该链接已损坏。 - Duncanmoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接