如何将日期时间分成不同的部分?

时间:2016-10-10 08:23:09

标签: php mysql laravel laravel-5.2

我的数据库中有一个名为created_at的列(我正在使用laravel 5.2)。它的值是这样的:2016-10-01 01:22:13。我想将这个日期时间拆分为年,月,日,小时,分,秒。

我可以使用下面的方法,只有日期2016-10-01

$resDate= explode('-', $resDate);
$year  = $resDate[0];
$month = $resDate[1];
$day   = $resDate[2];

但如果日期和时间完全相同(2016-10-01 01:22:13)那我该怎么分裂呢?

4 个答案:

答案 0 :(得分:2)

使用date_parse_from_format:获取有关根据指定格式格式化的给定日期的信息。

$date = '2016-10-01 01:22:13';
$split = date_parse_from_format('Y-m-d h:i:s', $date);

var_dump($split['year']); 
// outputs year from the string, 
//Similarly `$split['month']` will produce month name and so on.

答案 1 :(得分:1)

解决方案:

根据您在数据库中的数据,您可以将日期与strtotime()对齐,然后根据需要对其进行格式化。

示例:

$date = 2016-10-01 01:22:13

然后您可以执行以下操作

echo  $date_alone = date('d',strtotime($date)) // 01

同样,您可以根据下面给出的代码获取您拥有的所有数据

d - 日期

m - 月

Y - 年

H - 小时

i - 分钟

s - 秒

您可以在下面查看以供参考。

使用PHP格式化日期和时间

2008-02-07 16:45:58(以此为例)

对于那些通过计算大整数时间而不是天才的人,我将揭示我们如何格式化日期和时间的神秘感。我们将从日期格式开始。它是使用date()函数完成的。它接受两个参数。将字符串和时间格式化为整数。我们将使用time()作为当前时间整数。我们来看一些例子。

echo date("d-m-y", time());     // 07-02-08

上面格式字符串中字符之间的短划线正好是输出将被分隔的内容。

echo date("D j/n/Y", time());     // Thu 7/2/2008

这里的破折号用正斜杠替换。

echo date("jS of F Y", time());     // 7th of February 2008

我们可以使用我们想要的任何角色,请记住,如果它具有特殊含义,则必须对其进行转义。只是为了确保没有错误,我建议你总是逃避你使用的每一个角色。

echo date("d M y", time());     //07 Feb 08

使用月份名称和短年份的简短表示格式化日期。

echo date("l jS of F", time());     // Thursday 7th of February

全天和月份名称,包含该月份的序号后缀。

示例日期格式字符的图例:

d - 一天的数字表示,前导零到31。

m - 一个月的数字表示,前导零到01。

y - 一年的数字表示,两位数。

D - 一天的文字表示,Mon到Sun的三个字母。

j - 一天的数字表示,没有前导零1到31。

n - 月份的数字表示,不带前导1到12的零。

Y - 一年的数字表示,四位数。

S - 当月的英文序数后缀。由2个字符st,nd,rd或th组成。

F - 1月至12月的一个月的文字表示。

M - 一个月的文字表示,三个字母从一月到十二月。

星期日到星期六的星期几的文字表示。 现在我们继续我们的下一个任务,即时间格式化。我们仍将使用相同的date()函数,但使用不同的格式字符。

echo date("G:i:s", time());     //16:45:58

使用时间稍微简单一点,因为只有一种表示分钟和秒的方法。

echo date("H:i:s", time());    //16:45:58

尽管分钟和秒格式的选项很少,但我们有很多小时格式化样式。这个代表0到23的前导零的小时数。

echo date("g:i a.", time());     //4:45 pm.

答案 2 :(得分:0)

据我所知,没有一个函数可以将你的日期时间值部分填充到php中的数组中。您可以创建自己的函数将日期时间值拆分为数组。

示例:

ui-view

答案 3 :(得分:0)

在Laravel模型中,您将datetime字段作为Carbon对象。

因此,如果需要日期,您可以简单地调用 - > toDateString()

$modelObject->created_at->toDateString();

http://carbon.nesbot.com/docs/#api-formatting

您还可以直接访问日期的所有值。 http://carbon.nesbot.com/docs/#api-getters

$year  = $modelObject->created_at->year;
$month = $modelObject->created_at->month;
$day   = $modelObject->created_at->day;