jak połączyć te skrypty

jak połączyć te skrypty
IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0

mam dwa skrypty do wyświetlania dat jak zrobić, żeby wyświetlało jutro będzie sobota 11 stycznia 2025 roku (albo r.)

oto te skrypty (proszę o pomoc):

Jutro będzie (jeżeli będzie!):

Kopiuj
<?php 
echo date("Y-m-d", strtotime("+1 day")); // jutro
/* echo date("Y-m-d", strtotime("-1 day")); */ // wczoraj
; ?>
Kopiuj
<?php 
	
//dzień tygodnia	
	$dz_tyg=array("Sun"=>"niedziela","Mon"=>"poniedziałek","Tue"=>"wtorek","Wed"=>"środa","Thu"=>"czwartek","Fri"=>"piątek","Sat"=> "sobota");
		if ($dz=gmDate("D"))
			{
			$dz_tyg="$dz_tyg[$dz]";
			}
//dzień		
	$dzien=date("d");
//miesiąc	
	$miesiac=array(1=>"stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia");
		if ($m=gmDate("n"))
			{
			$miesiac="$miesiac[$m]";
			}
//rok			
	$rok=gmDate("Y");
//dzień roku
	$dz_roku=gmDate("z");
	$dz_roku=$dz_roku+1;
//wyswietlenie całości	
	echo ("<B>Dzisiaj jest</B> $dz_tyg, $dzien $miesiac $rok r.&nbsp;&nbsp; ($dz_roku dzień roku)");

; ?>

oczywiście to nie są moje skrypty (pewnie jakbym je napisał to wiedziałbym jak rozwiązać ten problem ;)

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
3

Może zamiast skryptów z netu próbuj pisać sam.
Ja proponuję coś innego:

Kopiuj
<?php
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "EEEE, d MMMM yyyy 'roku'"
);

// Formatowanie daty
$formattedDate = $formatter->format($date);

// Wyświetlenie wyniku
echo "Jutro będzie $formattedDate.";
?>

https://onlinephp.io/c/99900
(pisane z użyciem chata)

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0
jurek1980 napisał(a):

Może zamiast skryptów z netu próbuj pisać sam.
Ja proponuję coś innego:

Kopiuj
<?php
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "EEEE, d MMMM yyyy 'roku'"
);

// Formatowanie daty
$formattedDate = $formatter->format($date);

// Wyświetlenie wyniku
echo "Jutro będzie $formattedDate.";
?>

https://onlinephp.io/c/99900
(pisane z użyciem chata)

cymesik, właśnie o to chodziło - BARDZO dziękuję

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0

strona jest w formacie iso-8859-2,

przy tym skrypcie (działa dobrze - dziekuję) niestety są kłopoty z wyświetlaniem polskich znaków w dniach tygodnia :(

co tu trzeba zrobić aby pozbyć sie tego problemu :( ? - proszę o pomoc!

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
0

Ja podpowiem, Ty napiszesz.
Skoro nie wyświetlają się znaki w innym kodowaniu niż domyślne UTF-8 to zapewne trzeba przekonwertować jeden format do drugiego.
Do zmiany kodowania służy funkcja iconv
https://www.php.net/manual/en/function.iconv.php

Spróbuj sam przekonwertować tekst z jednego kodowania na inne z pomocą dokumentacji języka i przykładów.

BTW.
W dzisiejszych czasach lepiej jest używać UTF-8. Dostaniesz tekst do wyświetlenia w arabskim, albo ktoś będzie chciał zrobić śmiesznego nicka z użyciem dedykowanych znaków i będzie klops.

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0
jurek1980 napisał(a):

Ja pospowiem, Ty napiszesz.
Skoro nie wyświetlają się znaki w innym kodowaniu niż domyślne UTF-8 to zapewne trzeba przekonwertować jeden format do drugiego.
Do zmiany kodowania służy funkcja iconv
https://www.php.net/manual/en/function.iconv.php

Spróbuj sam przekonwertować tekst z jednego kodowania na inne z pomocą dokumentacji języka i przykładów.

BTW.
W dzisiejszych czasach lepiej jest używać UTF-8. Dostaniesz tekst do wyświetlenia w arabskim, albo ktoś będzie chciał zrobić śmiesznego nicka z użyciem dedykowanych znaków i będzie klops.

nie bądź taki ;), pomóż! próbowałem, ale o skutkach lepiej nie pisać ;)

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
1

Wrzuć to co zrobiłeś, przedyskutujemy.
Generalnie chodzi chyba o to byś wyniósł stąd jakąś wiedzę dla samego siebie?

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0
jurek1980 napisał(a):

Wrzuć to co zrobiłeś, przedyskutujemy.
Generalnie chodzi chyba o to byś wyniósł stąd jakąś wiedzę dla samego siebie?

tylko się nie śmiej !!!

Kopiuj
<?php
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "EEEE, d MMMM yyyy 'r'";

// kombinowanie jak koń pod górę
$text = "<php echo $formattedDate; ?>";

echo 'Original : ', $text, PHP_jutro;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_jutro;

);

// Formatowanie daty
$formattedDate = $formatter->format($date);

// Wyświetlenie wyniku
echo "<b>Jutro</b> <i>(jeżeli będzie!)</i>: $formattedDate.";

?>&nbsp;
jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
2

Dlaczego miałby ktokolwiek się śmiać z kogoś kto się uczy i chce się nauczyć?

Zmianę kodowania najlepiej zrobić w końcowej linii.
Do tego formatera daty możesz też od razu dodać ten przedrostek: "Jutro będzie" jeśli tylko nie sklejasz większej ilości napisów.

Kopiuj
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "'Jutro będzie 'EEEE, d MMMM yyyy 'roku'"
);
$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $formatter);

echo $formatter;
echo $converted;
// Pamiętaj, że echo wysyła już info do przeglądarki, Ty masz wyświetlić finalnie tylko skonwertowany tekst.

Pisane z palca. Zwróć uwagę na 2 rzeczy. Echo wyświetla już zmienną. To kodowanie jakie użyłeś nie jest chyba tym jakiego potrzebujesz. Zmień więc parametr funkcji iconv na docelowe, Tobie potrzebne kodowanie.

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0
jurek1980 napisał(a):

Dlaczego miałby ktokolwiek się śmiać z kogoś kto się uczy i chce się nauczyć?

Zmianę kodowania najlepiej zrobić w końcowej linii.
Do tego formatera daty możesz też od razu dodać ten przedrostek: "Jutro będzie" jeśli tylko nie sklejasz większej ilości napisów.

Kopiuj
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "'Jutro będzie 'EEEE, d MMMM yyyy 'roku'"
);
$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $formatter);

echo $formatter;
echo $converted;
// Pamiętaj, że echo wysyła już info do przeglądarki, Ty masz wyświetlić finalnie tylko skonwertowany tekst.

Pisane z palca. Zwróć uwagę na 2 rzeczy. Echo wyświetla już zmienną. To kodowanie jakie użyłeś nie jest chyba tym jakiego potrzebujesz. Zmień więc parametr funkcji iconv na docelowe, Tobie potrzebne kodowanie.

wpisałem coś takiego, ale nie wstało, pewnie coś poknociłem 🙁

Kopiuj
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "'<b>Jutro</b> <i>(jeżeli będzie!)</i>: 'EEEE, d MMMM yyyy 'r'";

);
$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $formatter);

echo $formatter;
echo $converted;

// Wyświetlenie wyniku
echo "$converted";

?>&nbsp;

IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
1
ikp-php3 napisał(a):
jurek1980 napisał(a):

Dlaczego miałby ktokolwiek się śmiać z kogoś kto się uczy i chce się nauczyć?

Zmianę kodowania najlepiej zrobić w końcowej linii.
Do tego formatera daty możesz też od razu dodać ten przedrostek: "Jutro będzie" jeśli tylko nie sklejasz większej ilości napisów.

Kopiuj
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "'Jutro będzie 'EEEE, d MMMM yyyy 'roku'"
);
$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $formatter);

echo $formatter;
echo $converted;
// Pamiętaj, że echo wysyła już info do przeglądarki, Ty masz wyświetlić finalnie tylko skonwertowany tekst.

Pisane z palca. Zwróć uwagę na 2 rzeczy. Echo wyświetla już zmienną. To kodowanie jakie użyłeś nie jest chyba tym jakiego potrzebujesz. Zmień więc parametr funkcji iconv na docelowe, Tobie potrzebne kodowanie.

wpisałem coś takiego, ale nie wstało, pewnie coś poknociłem 🙁

Kopiuj
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "'<b>Jutro</b> <i>(jeżeli będzie!)</i>: 'EEEE, d MMMM yyyy 'r'";

);
$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $formatter);

echo $formatter;
echo $converted;

// Wyświetlenie wyniku
echo "$converted";

?>&nbsp;

ostateczna wersja kodu, która zadziałała na to nieszczęsne isi jest taka: może przyda się innym ;):

Kopiuj
<?php
// Ustawienie strefy czasowej na Polskę
date_default_timezone_set('Europe/Warsaw');

// Ustawienie lokalizacji na polski
$locale = 'pl_PL'; // Kod języka dla języka polskiego
$date = new DateTime('now +1 day'); // Jutro

// Tworzenie formatowania daty za pomocą IntlDateFormatter
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL, // Pełny format daty
    IntlDateFormatter::NONE, // Bez czasu
    'Europe/Warsaw',
    IntlDateFormatter::TRADITIONAL,
    "EEEE, d MMMM yyyy 'r'"
);

// Formatowanie daty
$formattedDate = $formatter->format($date);

// Konwersja ciągu znaków na ISO-8859-2
$formattedDateIso = iconv("UTF-8//IGNORE", "ISO-8859-2//IGNORE", $formattedDate);

// Wyświetlenie wyniku
echo "<b>Jutro</b> <i>(jeżeli będzie!)</i>: $formattedDateIso.<br>";
?>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.