2016-03-15 83 views
2

我是PhP/MySQL的新手,只是学习东西。格式化UserSpice中的时间戳

我使用Userspice用户管理框架,为我的项目

在有表的数据库称为"users",它有一个字段名"join_date"和字段项看起来就像2016-01-01 00:00:00它在当时被存储为时间戳的用户注册。

要,我使用以下查询

<?php $user->data()->join_date; ?> 

上述查询按预期输出2016-01-01 00:00:00

但我的所需输出January 2016输出。所以,我尝试了以下查询

<?php $user->data()->join_date->format('F Y'); ?> 

但页面变为空白。我可以理解,上面的查询有语法错误或逻辑错误。请你能帮我解决这个问题。我可能看起来很傻,问这些小事,我只是在学习东西。

更新:

而且我尝试下面的查询现在认为在价值储存和做会帮助,但空白页的同样的错误。

<?php 
$x = $user->data()->join_date; 
$y = $x->format('F-Y'); 
echo $y; 
?> 

回答

1

需要使用strtotime功能来格式化日期:(与你的日期变量替换$date

$date = '2016-01-01 00:00:00'; 

echo date('F Y', strtotime($date)); 

输出:

January 2016 

这里DateTime类是更好的选择:

$datetime = new DateTime($date); 

echo $datetime->format('F Y'); 

输出:

January 2016 

更多细节有看http://php.net/manual/en/function.date.phphttp://php.net/manual/en/class.datetime.php

+0

由于一吨的伴侣。有效 ! 。顺便说一下,我可能知道为什么你提到'DateTime'比'strtotime'更好。 –

+1

看看http://stackoverflow.com/questions/8605563/datetime-class-vs-native-php-date-functions或者你可以搜索谷歌相同 –

1

试试这个

<?php 
    $formatted_date = new DateTime($user->data()->join_date); 
    echo $formatted_date->format('F Y'); 
?> 
+0

谢谢队友。是的'DateTime'类工作 –