Problem z wyświetlaniem skryptu w danych datach i godzinach


(1q2w3e4r) #1

Witam,

Chcę aby moja strona wyświetlała się/była dostępna tylko w określonych dniach, tzn są dwa warunki:

Chcę aby wyświetlała się w każdym tygodniu roku we Wtorek od godziny 8:45 do piątku do godziny 16:00

Ale tylko między tymi datami: 14 maja do 16 października każdego roku.

Dlatego zwracam się do Was z prośbą, bo musi to działać. Nie może być takiej sytuacji żeby działało w piątek po 16:00 albo po 16 października lub wcześniej czyli 13maja.

Jak to można szybko rozwiązać aby nie trzeba było podawać dat?

Z góry dziękuje za pomoc.

p.s


(kostek135) #2

Funkcją time() pobierz obecny timestamp serwera i przekształć to przy pomocy date(), np.

if((int)date("n", time()) <= 5) ;\\to widoczne tylko w maju i wcześniej

Zrób analogicznie dla dat jakie chcesz. Spis formatów do funkcji date znajdziesz na php.net wpisując w wyszukiwarkę date.


(1q2w3e4r) #3

Dzięki.

Coś takiego wyszło:

$aktualna_data = time();


	$sprawdzanie_miesiaca = (int) date ("n", $aktualna_data);

	$sprawdzanie_dnia = (int) date ("j", $aktualna_data);


	$sprawdzanie_godziny = (int) date ("G", $aktualna_data);

	$sprawdzanie_minuty = (int) date ("s", $aktualna_data);


	$sprawdzanie_dzien_tygodnia = (int) date ("w", $aktualna_data); // 0 (niedziela) do 6 (sobota)


	//$sprawdzanie_miesiaca = 5;

	//$sprawdzanie_dnia = 15;


	//$sprawdzanie_dzien_tygodnia = 3;

	//$sprawdzanie_godziny = 21;

	//$sprawdzanie_minuty = 21;


	// dostępne od 14 maja dostępne do 16 października dostepne od czerwca do września

	if( (($sprawdzanie_miesiaca == 5 AND $sprawdzanie_dnia >= 14) OR ($sprawdzanie_miesiaca == 10 AND $sprawdzanie_dnia <= 16)) OR ($sprawdzanie_miesiaca >= 6 AND $sprawdzanie_miesiaca <= 9) )

	{

		// dostepne od powiedziałku godziny 12 dostepne do piatku godziny 16 dostepne od wtorku do piatku

		if( (($sprawdzanie_dzien_tygodnia == 1 AND $sprawdzanie_godziny >= 12) OR ($sprawdzanie_dzien_tygodnia == 5 AND $sprawdzanie_godziny <= 16)) OR ($sprawdzanie_dzien_tygodnia >= 2 AND $sprawdzanie_dzien_tygodnia <= 4) )

		{


			echo 'przeszło 

';

			echo 'miesiąc: '.$sprawdzanie_miesiaca;

			echo '
';

			echo 'dzień: '.$sprawdzanie_dnia;

			echo '

';

			echo 'godzina: '.$sprawdzanie_godziny;

			echo '
';

			echo 'dzien tygodnia: '.$sprawdzanie_dzien_tygodnia;

		}

	}

(kostek135) #4
$sprawdzanie_minuty = (int) date ("s", $aktualna_data);

"s" to sekundy nie minuty, wzorzec minut to "i".

Jak coś jeszcze znajdę, to zaktualizuje tego posta.