CrashX
В прошлом XSiteCMS
- Регистрация
 - 6 Июн 2008
 
- Сообщения
 - 681
 
- Реакции
 - 114
 
- Автор темы
 - #1
 
собственно есть некоторое приложение в котором проставляется дата посещения, поста и тп
но тут я вижу как минимум 2 реализции
Вариант первый
дата задается с 0 часовым поясом
	
	
	
		
что я вижу хорошего в этом
-для любого пользователя в любом часовом поясе легко сделать поправку на время, что бы ему было понятно что и во сколько происходит по его местному времени, делаю это руками путем добавления недостающего количества часов
	
	
	
		
но теперь минусы,
при занесении данных в СуБД нужно делать обратную поправку
скажем в том случае если пользователь заносит новость или создает событие в своем времени то для занесения в СуБД нужно сделать обратную поправку таких полей для того что бы оно соответствовало его времени
те
я сделал задание на 12-15 скажем отправить письмо, то в 12-15 моего времени (допустим +6) оно должно отправится а по GTM это 6-15...
Вариант второй
не использовать собственный поправки на часовой пояс, а использовать
только
	
		
и корректировать только с помощью функций часовых поясов, 
тут проблема как поймет скрипт что это было записано в том или ином засовом поясе.... при формате даты DateTime
----------
у кого есть идеи по этому вопросу
нужно упростить максимально обращение с датой,
чтобы оно соответствовало нужному времени, и было более менее удобным в обращении
-----
пока пользуюсь вариантом 1, но кажется все же можно избавится от обратной конвертации с форм...
	
		
			
		
		
	
				
			но тут я вижу как минимум 2 реализции
Вариант первый
дата задается с 0 часовым поясом
		PHP:
	
	date_default_timezone_set('Europe/London');
	-для любого пользователя в любом часовом поясе легко сделать поправку на время, что бы ему было понятно что и во сколько происходит по его местному времени, делаю это руками путем добавления недостающего количества часов
		PHP:
	
	    if (isset($offset) && $offset != 0):
      //                         mktime (                        $hour                  $min         $sec         $mon         $day         $year)
      $value = $this->parsedate(date('Y-m-d H:i:s', mktime($value['H'] + $offset, $value['I'], $value['S'], $value['M'], $value['D'], $value['Y'])), 0);
    endif;
	при занесении данных в СуБД нужно делать обратную поправку
скажем в том случае если пользователь заносит новость или создает событие в своем времени то для занесения в СуБД нужно сделать обратную поправку таких полей для того что бы оно соответствовало его времени
те
я сделал задание на 12-15 скажем отправить письмо, то в 12-15 моего времени (допустим +6) оно должно отправится а по GTM это 6-15...
Вариант второй
не использовать собственный поправки на часовой пояс, а использовать
только
		PHP:
	
	date_default_timezone_set('Europe/London');
	тут проблема как поймет скрипт что это было записано в том или ином засовом поясе.... при формате даты DateTime
----------
у кого есть идеи по этому вопросу
нужно упростить максимально обращение с датой,
чтобы оно соответствовало нужному времени, и было более менее удобным в обращении
-----
пока пользуюсь вариантом 1, но кажется все же можно избавится от обратной конвертации с форм...