0

是否可以将日期时间字符串的时间部分拆分为小时、分钟和秒,以便每个字段都有一个数值?理想情况下从 mysql 数据库中检索。

我在网站上查看过,似乎有很多关于如何分割日期和时间部分的建议,但没有关于我的具体问题的建议。提前谢谢了。

PS 我将使用 PHP 从 mysql 数据库中选择日期时间。

4

4 回答 4

1

如果要直接在 sql 中执行此操作:

SELECT HOUR( timestamp_field ) AS HOUR, 
       MINUTE( timestamp_field ) AS MINUTE, 
       SECOND( timestamp_field ) AS SECOND
FROM some_table

或者,如果您想在执行查询后在 php 中执行此操作

$datetime = "1997-12-31 23:59:59";
$parsed = date_parse($datetime);

看起来像

Array
(
[year] => 1997
[month] => 12
[day] => 31 
[hour] => 23
[minute] => 59
[second] => 59
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array()
[error_count] => 0
[errors] => Array()
[is_localtime] => 
)
于 2013-02-02T20:33:59.203 回答
0

怎么样:

<?php
$timestamp = 1359837241;
$hour = date('H', $timestamp);
$minute = date('i', $timestamp);
$second = date('s', $timestamp);
echo $hour . '<br>';
echo $minute . '<br>';
echo $second . '<br>';
?>
于 2013-02-02T20:35:13.283 回答
0

使用打击代码,您可以将 DateTime 转换为 TimeStamp

$date = new DateTime("1897-04-21 22:55:19");
$TimeStamp=$date->getTimestamp();  

并且使用date()函数,您可以将时间戳拆分为年、分、秒

echo date("H",$TimeStamp);
.
.
.

有关更多信息,请参阅日期()

于 2013-02-02T20:38:25.700 回答
0

如果我正确理解了您的问题,那么应该这样做:

<?php
    $timeStamp = '2012-10-23 13:35:20';
    $timeStampSplode = explode( ' ', $timeStamp );

    $head = $timeStampSplode[0];
    $tail = $timeStampSplode[1];

    $headSplode = explode( '-', $head );
    $tailSplode = explode( ':', $tail );

    $year = $headSplode[0];
    $month = $headSplode[1];
    $date = $headSplode[2];

    $hour = $tailSplode[0];
    $minute = $tailSplode[1];
    $second = $tailSplode[2];

    echo "Year: ". $year. "<br />";
    echo "month: ". $month. "<br />";
    echo "date: ". $date. "<br />";
    echo "hour: ". $hour. "<br />";
    echo "minute: ". $minute. "<br />";
    echo "second: ". $second. "<br />";
?>

并且使用 $timeStamp 作为从数据库中获取的值是没有问题的。

于 2013-02-02T20:47:10.283 回答