1. 程式人生 > >UNIX時間戳和格式化日期

UNIX時間戳和格式化日期


一、在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”; 
當然大家也可以選擇在PHP中進行轉換,下面說說在PHP中轉換。 

二、在PHP中完成

 
   
這種方式在PHP程式中完成轉換,優點是無論是不是資料庫中查詢獲得的資料都能轉換,轉換範圍不受限制,缺點是佔用PHP解析器的解析時間,速度相對慢。 
1. UNIX時間戳轉換為日期用函式: date() 
一般形式:date('Y-m-d H:i:s', 1156219870); 
2. 日期轉換為UNIX時間戳用函式:strtotime() 
一般形式:strtotime('2010-03-24 08:15:42'); 

php日期轉時間戳,指定日期轉換成時間戳 

php日期轉時間戳、指定日期轉換成時間戳,PHP定時任務。 
這兩天要實現這樣功能: 
當達到某一條件時,讓伺服器發簡訊給使用者,數量為多條。 
基本思路:linux 定時掃描,若有滿足條件的使用者,則傳送簡訊。 
但為了防止打擾到使用者,要求只能在白天8:00-20:00傳送簡訊,怎麼樣獲得到每天的這段時間區間? 
如下程式碼: 

複製程式碼程式碼如下:
<? 
$y=date("Y",time()); 
$m=date("m",time()); 
$d=date("d",time()); 
$start_time = mktime(9, 0, 0, $m, $d ,$y); 
$end_time = mktime(19, 0, 0, $m, $d ,$y); 
$time = time(); 
if($time >= $start_time && $time <= $end_time) 

// do something.... 

?>