1

Firstly, I have a column like shown in this picture:
http://i.imgur.com/yYpxl3S.png

Users choose their timezone when they register. How would I go about interpreting time according to the user? In this situation I want users to be able to define when they want people to be active, so IE Bob wants to search for users who are active from 9am to 12pm. What timestamps would I need to insert into the database so that users could search in this manner?

Update

I was also asking on exactly how to find if one time overlaps with another, however the cross time formatting is essential to this. I will include this code snippet of how I found if times were overlapping. Thanks Pekka for the proper answer too.

    <?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;

    ?>

With this example you will see that 9am-12pm UTC overlaps with 11pm-5am America/Chicago

user2827317
  • 37
  • 1
  • 8

1 Answers1

1

See Daylight saving time and time zone best practices

Bottom line: store UTC timestamps internally, translate all user input from and to their preferred time zone. That's pretty much it.

Community
  • 1
  • 1
Pekka
  • 442,112
  • 142
  • 972
  • 1,088