0

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

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

PHP中有没有一种简单的方法可以从这样的格式中删除时间部分?我曾想过在格式化日期之前从格式中删除所有时间元素,但话又说回来,你如何可靠地删除分隔字符,如 : 或 . ,而不会影响日期的格式(当然可能是异国情调的)。

4

2 回答 2

0

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

于 2013-08-29T22:31:39.657 回答
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));
    }
}
于 2017-10-08T17:31:26.383 回答