2013-09-30 55 views
1

首先,我有一列像顯示在這張照片:
http://i.imgur.com/yYpxl3S.pngPHP普遍轉換時間的用戶偏好

用戶選擇自己的時區時,他們註冊。如何根據用戶解釋時間?在這種情況下,我希望用戶能夠定義他們希望人們活躍的時間,所以IE Bob想要搜索從早上9點到下午12點活躍的用戶。我需要將什麼時間戳插入到數據庫中,以便用戶可以以這種方式進行搜索?

更新

我也問究竟上如何找到如果時間與另一個重疊,但是跨時代的格式與當前至關重要的。如果時間重疊,我將包含這段代碼片段。感謝Pekka也有正確的答案。

<?php 
    date_default_timezone_set('UTC'); 
    $min = strtotime('9am'); 
    $max = strtotime('12pm'); 
    echo $min. ',' .$max . '<br/>'; 
    date_default_timezone_set('America/Chicago'); 
    $mina = strtotime('11pm'); 
    $maxa = strtotime('5am'); 
    echo 'User plays between' . date("g:ia", $min) . ' and ' . date("g:ia", $max) . '<br />'; 
    echo 'You play between' . date("g:ia", $mina) . ' and ' . date("g:ia", $maxa) . '<br />'; 
    if((($mina >= $min) And ($mina <= $max)) Or (($maxa <= $max) And ($maxa >= $min)) 
     Or (($min >= $mina) And ($min <= $maxa)) Or (($max <= $maxa) And ($max >= $mina)) 
    ) { 
     $blend = 'True'; 
    } else { 
     $blend = 'False'; 
    } 
    if($maxa === $min Or $mina === $max) $blend = 'False'; 

    echo $blend; 

    ?> 

有了這個例子中,你會看到,9 AM-12PM UTC與11 pm-5am重疊美洲/芝加哥

+1

相關/重複:[夏令時和時區最佳做法](http://stackoverflow.com/q/2532729) –

+0

http://php.net/manual/en/function.date-default-timezone -set.php – MLeFevre

回答