【问题标题】:Converting stored dates and times to user-frindly outputs将存储的日期和时间转换为用户友好的输出
【发布时间】:2014-11-19 06:14:03
【问题描述】:

所以我将消息存储在 SQL 表中,类型为:timestamp default: CURRENT_TIMESTAMP,在数据库中和打印时如下所示:2014-11-11 11:43:23。

我正在将时间与消息一起打印,但我正在寻找一种方法将其转换为更用户友好的格式,即动态的内容,如果是今天写的,则显示“12:15”或其他内容就像“星期一 12:15”,如果它是在星期一 12:15 写的。

由于我从来没有做过这样的事情,我想知道是否有 sn-ps 可以处理这个问题(我找不到任何我存储的格式),还是我需要从头开始?

如果有人知道特定存储格式的程序,我当然愿意以不同的方式存储时间。

无论如何,衷心感谢您的帮助。非常感谢。

【问题讨论】:

标签: php mysql sql timestamp


【解决方案1】:

您可以使用Carbon 库,它是 PHP 的 DateTime 类的扩展。 它有你要找的东西:https://github.com/briannesbitt/Carbon#api-humandiff

它会显示“一小时前”或“10天前”等相对时间。

【讨论】:

    【解决方案2】:

    试试date()

    echo date('l H:i', strtotime('2014-11-11 11:43:23')); //Tuesday 11:43 
    

    date() 中传递一个格式你会得到你的输出

    【讨论】:

      【解决方案3】:

      在您的 DBMS 中仅将数据存储为本机数据类型(例如timestapdatetime)是一种很好的做法。

      如果您决定在 php 中格式化您的数据,您可以使用 php 的date() 函数对其进行格式化。它允许您从日期对象或字符串输出格式化/人类可读的日期时间值。有关可用格式的更多信息,请访问link

      【讨论】:

        【解决方案4】:

        检查以下代码 - 它将显示为Tuesday 11:43

        $date_time="2014-11-11 11:43:23";
        $dte_new=date("l H:i", strtotime($date_time));
        

        使用下面的代码显示为Tuesday 11:43 AM

        $date_time="2014-11-11 11:43:23";
        $dte_new=date("l H:i A", strtotime($date_time));
        

        Check php.net for further details

        【讨论】:

        • 非常感谢。看起来很棒,除了我会继续努力改进它,因为我希望它采用 12 小时格式。不过感谢您的回复。
        【解决方案5】:

        我对您的问题很感兴趣,并设法检索到您正在寻找的结果:

        DECLARE @date DATETIME,
            @day VARCHAR(100),
            @time VARCHAR(100)
        
        SET @date = '2014-11-11 11:43:23'
        
        
        SELECT @day = (
          DATENAME(dw, 
          CAST(DATEPART(m, GETDATE()) AS VARCHAR) 
          + '/' 
          + CAST(DATEPART(d, @date) AS VARCHAR) 
          + '/' 
          + CAST(DATEPART(yy, getdate()) AS VARCHAR))
          )
        
        SELECT @time = CAST(@date AS TIME)
        
        PRINT @day + ' ' + LEFT(@time, CHARINDEX('.', @time)-1)
        

        结果:'星期二 11:43:23'

        如果您需要任何说明,请告诉我。

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-07
          • 1970-01-01
          • 1970-01-01
          • 2020-05-27
          • 2012-08-08
          • 1970-01-01
          • 2015-05-15
          • 2011-05-06
          相关资源
          最近更新 更多