• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Data w PHP, polskie nazwy, ilość minut do danej daty.

Object Storage Arubacloud
+1 głos
139 wizyt
pytanie zadane 11 grudnia 2020 w PHP przez ZwierzchU Nowicjusz (130 p.)
Witam, mam do was ogromną prośbę, mógłby mi ktoś wytłumaczyć jak w PHP wyświetlić bieżącą datę? Ma to wyglądać tak, że dzień tygodnia i miesiąc mają być po polsku a ja kompletnie nie wiem jak to zrobić...

Powinno to wyglądać tak : Dzisiaj jest - piątek, 11 grudnia, 2020.

Mam jeszcze jedno pytanie, jak wyświetlić ilość minut do np. 24 grudnia?

2 odpowiedzi

0 głosów
odpowiedź 11 grudnia 2020 przez VBService Ekspert (253,420 p.)
edycja 12 grudnia 2020 przez VBService

1. Utworzyć funkcję np.: showFullDescriptionTodayDate() - date() function

<?php

	function showFullDescriptionTodayDate() {
    	$days_week = [ 'niedziela', 'poniedziałek', 'wtorek', 'środa',
                       'czwartek', 'piątek', 'sobota' ];
        $months = [ '', 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca',
        		    'lipca', 'sierpnia', 'września','października', 'listopada', 'grudnia' ];           
        
        $full_description = 'Dzisiaj jest - '.$days_week[date("w")].', '
                            .date("d").' '.$months[date("n")].', '.date("Y");
        return $full_description;
    }
    
?>

przykładowe użycie. wink

<?php

	function showFullDescriptionTodayDate() {
    	$days_week = ['niedziela', 'poniedziałek', 'wtorek', 'środa',
                      'czwartek', 'piątek', 'sobota'];
        $months = ['', 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca',
        		   'lipca', 'sierpnia', 'września','października', 'listopada', 'grudnia'];           
        
        $full_description = 'Dzisiaj jest - '.$days_week[date("w")].', '
                            .date("d").' '.$months[date("n")].', '.date("Y");
        return $full_description;
    }
    
?>
<!DOCTYPE html>
<html lang="pl">
	<head>
    	<meta charset="utf-8">
    </head>
	<body>
		<div><?php echo showFullDescriptionTodayDate(); ?></div>
	</body>
</html>

2. mktime() function, ponieważ

mktime() returns the Unix timestamp corresponding to the arguments given. This timestamp is a long integer containing the number of seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time specified.

<?php 
 
  $today = mktime(); // dzisiejsza data
  $xmas = mktime(0,0,0,12,24,2020); // jak widać ;-)
  $remained = floor(($xmas - $today) / 60);

?>

przykładowe użycie. wink

<?php

  function minutesToXmas() {
    define(MINUTE,60); // 60 sekund ;-)
    $today = mktime(); // dzisiejsza data
    $xmas = mktime(0,0,0,12,24,2020); // jak widać ;-)
    $remained = floor(($xmas - $today) / MINUTE);
    return ($remained > 0) ? $remained : 0;
  }
  
?>  
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div>Pozostało <b><?php echo minutesToXmas(); ?></b> minut do 24 grudnia</div>
    </body>
</html>

wink

<?php

  function minutesToXmas() {
    define(MINUTE,60); // 60 sekund ;-)
    $today = mktime(); // dzisiejsza data
    $xmas = mktime(0,0,0,12,24,2020); // jak widać ;-)
    $remained = floor(($xmas - $today) / MINUTE);
    return ($remained > 0) ? $remained : 0;
  }
  
?>  
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">
        
    <style>
    	#minutes-to-xmas {
        	font-weight: bold;
        }
    </style>
    </head>
    <body>
        <div>Pozostało <span id="minutes-to-xmas"><?php echo minutesToXmas(); ?></span> minut do 24 grudnia</div>
        
    <script>
    	window.onload = () => {
        	const minutes_to_xmas = document.querySelector('#minutes-to-xmas');
            const MINUTE_ = 60000;

            const id_interval = setInterval(() => {
                minutes_to_xmas.textContent--;
                if (minutes_to_xmas.textContent == 0) clearInterval(id_interval);
            }, MINUTE_);
        }
    </script>
    </body>
</html>

 

0 głosów
odpowiedź 11 grudnia 2020 przez Assasz Nałogowiec (30,460 p.)

Najprostszy możliwy sposób na wyświetlenie przetłumaczonej daty:

setlocale(LC_TIME, 'pl_PL.UTF-8');

echo strftime("%A %d %B %Y"); 

// piątek 11 grudnia 2020

https://www.php.net/strftime

(to wymaga zainstalowanego rozszerzenia php-intl)

Mam jeszcze jedno pytanie, jak wyświetlić ilość minut do np. 24 grudnia?

$interval = (new DateTime())->diff(new DateTime('2020-12-24'));
$minutes = ($interval->days * 24 * 60) + ($interval->h * 60) + $interval->i;

echo "{$minutes} minut do 24 grudnia";

 

komentarz 12 grudnia 2020 przez VBService Ekspert (253,420 p.)

Najprostszy możliwy sposób na wyświetlenie przetłumaczonej daty

najprostszy to raczej w sensie, że 2 linijki kodu w php

   setlocale(LC_TIME, 'pl_PL.UTF-8'); 
   echo strftime("Dzisiaj jest - %A, %d %B, %Y");

   // tego oczekujemy
   // Dzisiaj jest - sobota, 12 grudnia, 2020

   // ale bez php-intl dalej otrzymujemy
   // Dzisiaj jest - Saturday, 12 December, 2020 

Where is the intl PHP extension? Problem solved!

bo na serwerach hostingowych to już różnie bywa z tym rozszerzeniem. wink

Podobne pytania

0 głosów
2 odpowiedzi 115 wizyt
pytanie zadane 1 marca 2020 w JavaScript przez Kolberg Obywatel (1,560 p.)
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 6 listopada 2016 w PHP przez tekyondo Nowicjusz (150 p.)
0 głosów
1 odpowiedź 298 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...