拆分字符串时间和日期

时间:2015-01-28 11:59:06

标签: php mysql

我需要从2015-01-25 21:00分割时间和日期。我想把它分成$ year,$ month,$ day和$ time。我总是在约会结束时:25 21:00。所以我想要4个不同的变量。

5 个答案:

答案 0 :(得分:1)

select year(datetime_column) as year,
       month(datetime_column) as month,
       day(datetime_column) as day,
       time(datetime_column) as time
from your_table

答案 1 :(得分:1)

您想要使用strtotimedate。这是一个如何突破它的快速示例。

   $date = strtotime('2015-01-25 21:00');
   $year = date('Y', $date);
   $month = date('m', $date);
   $day = date('d', $date);
   $time = date('H:i', $date);

我会阅读上面的链接,以便更好地了解这些要求。应以这种方式处理所有日期字符串以确保准确性。此外,如果您开始修改日期+/-天/月/年,则应修改$date var,而不是修改您创建的新版本。

虽然preg_match和下面的答案中的爆炸可能会给你带来结果,但几乎不可能将数据作为任何用例的日期来处理。

答案 2 :(得分:0)

我会假设您不想在MySQL中进行实际拆分?无论哪种方式,我认为这类问题已有多个答案。

来自this answer的PHP解决方案。

$myvalue = '28-1-2011 14:32:55';

$datetime = new DateTime($myvalue);

$date = $datetime->format('Y-m-d');
$time = $datetime->format('H:i:s');

答案 3 :(得分:0)

您可以使用preg匹配,您可能希望将值转换为int。

preg_match('/([0-9]{4})\-([0-9]{2})\-([0-9]{2}) ([0-9]{2}\:[0-9]{2})/', $date, $match);
$year = $match[1];
$month = $match[2];
$day = $match[3];
$time = $match[4];

答案 4 :(得分:0)

试试这个:

$datetime = '2015-01-25 21:00';
$datetime_array = explode(' ',$datetime);
$date = $datetime_array[0];
$time = $datetime_array[1];
$arr = explode('-', $date);
$year = $arr[0];
$month = $arr[1];
$day = $arr[2];
echo 'Year: '.$year.' Month: '.$month.' Day: '.$day.' Time: '.$time;

输出:

Year: 2015 Month: 01 Day: 25 Time: 21:00