从php中的日期时间格式中删除时间指示

时间:2013-08-29 21:34:28

标签: php datetime

我允许用户选择他们想要的日期时间格式,因此他们中的大多数都有类似D, d M Y H:i:s的内容,但是,这可能是任何内容。

在某些情况下,我只想显示日期部分,但仍然使用用户的格式。

在PHP中有一种简单的方法可以从这样的格式中删除时间部分吗? 我想过在格式化日期之前只从格式中删除所有时间元素,但是再次,如何可靠地删除分隔字符,如:或。 ,不影响日期的格式(当然可能是任何异国情调)。

2 个答案:

答案 0 :(得分:0)

我认为最好的方法是为数据库中遇到的每种常用日期时间格式定义匹配的日期格式。我不知道phpBB是否允许完全自定义格式,这会让事情变得更难,但普通用户不会使用date()的PHP配置选项。

答案 1 :(得分:0)

与往常一样,有多种方法可以解决您的问题。

一种方法可能是显示5种不同格式的下拉列表。 然后,您可以创建一个可以根据用户首选项重新设置的功能。 所以说我选择格式nr。 2在下拉列表中,您只需将该整数保存到我的用户设置中,然后创建一个可以像这样调用的函数

$time_to_print = format_according_to_user_preference($preference,$timestamp);

然后你有一个带有几个if子句的函数,听起来像是

function format_according_to_user_preference($preference,$timestamp){
    if($preference == 1){
    //American preference
    return date('Y-m-d H:i:s',strtotime($timestamp));
    }else if($preference == 2){
    //European preference 
    return date('d-m-Y H:i:s',strtotime($timestamp));
    }else{
    //some default preference just in case user hasen't set a wish 
    return date('Y-M-D H:i:s',strtotime($timestamp));
    }
}