所以我将消息存储在SQL表中,类型为:timestamp default:CURRENT_TIMESTAMP,如下所示:2014-11-11 11:43:23在数据库中和打印时。
我正在打印时间以及消息,但我正在寻找一种方法将其转换为更加用户友好的格式,即一些动态的东西,如果它是今天写的“12:15”或其他东西比如“星期一12:15”,如果它是在星期一12:15写的。
由于我从未做过这样的事情,我想知道是否有处理这个的片段(我找不到任何存储格式),或者我是否需要从头开始?
如果有人知道特定存储格式的程序,我当然愿意以不同的方式存储时间。
无论如何,真诚的感谢您的帮助。非常感谢。
答案 0 :(得分:1)
尝试使用date()
echo date('l H:i', strtotime('2014-11-11 11:43:23')); //Tuesday 11:43
在date()
中传递一种格式,您将获得输出
答案 1 :(得分:1)
最好将数据存储为基于DBMS的本机数据类型(例如timestap
,datetime
)。
如果您决定在php中格式化数据,可以使用php的date()
函数对其进行格式化。它允许您从日期对象或字符串输出格式化/人类可读的日期时间值。有关可用格式的详细信息,请访问此link。
答案 2 :(得分:1)
您可以使用Carbon库,它是PHP的DateTime类的扩展。 它有你想要的东西:https://github.com/briannesbitt/Carbon#api-humandiff
它会显示“一小时前”或“10天前”的相对时间等。
答案 3 :(得分:1)
我对您的问题很感兴趣并设法检索您要查找的结果:
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'
如果您需要清楚,请告诉我。
希望这有帮助。
答案 4 :(得分:1)
检查以下代码 - 它将显示为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));