mysql中存取的為時間戳轉換為時間日期格式的兩種方式
阿新 • • 發佈:2019-02-07
一、在mysql中完成
這種方式在MySQL查詢語句中轉換,優點是不佔用PHP解析器的解析時間,速度快,缺點是隻能用在資料庫查詢中,有侷限性
1. UNIX時間戳轉換為日期用函式: FROM_UNIXTIME()
一般形式:select FROM_UNIXTIME(1156219870);
2. 日期轉換為UNIX時間戳用函式: UNIX_TIMESTAMP()
一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′);
舉例:mysql查詢當天的記錄數:
$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d' ) = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”;
在laravel框架中的使用
$result = DB::table('t_users')->select('t_users.*',DB::raw('FROM_UNIXTIME(t_users.createtime,"%Y-%m-%d %H:%i:%s") as times'))->where('id',195)->get();
當然大家也可以選擇在PHP中進行轉換,下面說說在PHP中轉換。
二、在php中完成
這種方式在PHP程式中完成轉換,優點是無論是不是資料庫中查詢獲得的資料都能轉換,轉換範圍不受限制,缺點是佔用PHP解析器的解析時間,速度相對慢。
1. UNIX時間戳轉換為日期用函式: date()
一般形式:
date('Y-m-d H:i:s', 1156219870);
當返回給前端的資料是時間戳時可以用:
<?php
echo date('Y-m-d H:i:s', 1156219870);
?>
直接巢狀在h5程式碼中。
2. 日期轉換為UNIX時間戳用函式:strtotime()
一般形式:strtotime('2010-03-24 08:15:42');