Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2017, 16:26   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Определить дату и выбрать время

Есть AppServ 2.5.10 и он из-за старых библиотек переводит время на час вперёд/назад. Обновиться нет возможности.
Каждый раз править это место в PHP уже надоело.
Код:
	//$tz_object = new DateTimeZone('Europe/Moscow'); // Зимой	
	$tz_object = new DateTimeZone('Europe/Minsk'); // Летом
Справка по переводу стрелок часов: последнее воскресенье марта и октября.

Как определить, что сейчас не последнее воскресенье октября и брать время
Код:
$tz_object = new DateTimeZone('Europe/Minsk'); // Летом
и если сейчас не последнее воскресенье марта, то брать время
Код:
$tz_object = new DateTimeZone('Europe/Moscow'); // Зимой
Код:
<?php
// Часовой пояс
date_default_timezone_set("Europe/Moscow");

function get_Datetime_Now() {
    // Как сделать здесь проверку?
	switch (что-то) {
		case 0:
			$tz_object = new DateTimeZone('Europe/Minsk'); // Летом
			break; // Дальше по коду не идём	
		case 1:
			$tz_object = new DateTimeZone('Europe/Moscow'); // Зимой
			break; // Дальше по коду не идём

		break; // Дальше по коду не идём
	}
	
    $datetime = new DateTime();
    $datetime -> setTimezone($tz_object);
    return $datetime -> format('Y\-m\-d\ H:i:s'); // Дата подключения: заглавная Y - 2013, строчная - 13; заглавная H - 24 часа, строчная - AM/PM
}
?>

Последний раз редактировалось Shouldercannon; 02.09.2017 в 16:32.
Shouldercannon вне форума Ответить с цитированием
Старый 02.09.2017, 18:08   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Возможно, поможет использование для проверки значения, возвращаемого функцией date('I'); (заглавная i):
Цитата:
I (заглавная i)
Признак летнего времени
1 – если дата соответствует летнему времени, 0 – в противном случае
Типа:
PHP код:
switch ((int)date('I')) 
Andkorol вне форума Ответить с цитированием
Старый 02.09.2017, 19:55   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

То, что надо
Код:
function get_Datetime_Now() {
	// Определение, зимнее или летнее время
	date("I");
	switch (date) {
		// Зимнее
		case 0:
			$tz_object = new DateTimeZone('Europe/Minsk');
			break; // Дальше по коду не идём
		// Летнее
		case 1:
			$tz_object = new DateTimeZone('Europe/Moscow');
			break; // Дальше по коду не идём
	}	
    $datetime = new DateTime();
    $datetime -> setTimezone($tz_object);
    return $datetime -> format('Y\-m\-d\ H:i:s'); // Дата подключения: заглавная Y - 2013, строчная - 13; заглавная H - 24 часа, строчная - AM/PM
}
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить дату/ время cw82 БД в Delphi 18 14.11.2016 14:49
Как выбрать данные за максимальную дату moroz11 SQL, базы данных 2 30.08.2012 10:31
В ячейку вписать дату и время Romuald Microsoft Office Excel 2 21.07.2010 15:46
Установить програмно время и дату AleX CODER Общие вопросы Delphi 2 02.01.2009 13:51