PHP české měsíce – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP české měsíce – PHP – Fórum – Programujte.comPHP české měsíce – PHP – Fórum – Programujte.com

 

krpik0
Newbie
21. 2. 2020   #1
-
0
-

Zdravím, 

Mam vytvořenou stránku a tabulku ,kde se mi selectují data a potřeboval bych je filtrovat dle měsíce

vytvořil jsem na to program

historie.php

	
            <?php
            
        $i = date('j.n.Y', strtotime(StrFTime('%Y-%m-%d')));

echo $i;
							for ($i = 1; $i <= 12; $i++){


$month = date('F', mktime(0, 0, 0, $i));

						?>
								<option value="<?php echo $i; ?>"><?php echo $month; ?></option>
						<?php
							}  
						?>
					</select>
					<label>Rok: </label>
					<select name="year" class="form-control">
						<?php
							for ($i = date('Y'); $i >= 1965; $i--){
						?>
							<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
						<?php
							}
						?>
					</select>
					<button class="btn btn-primary" name="search">Hledat</button>
				</div>
			</form>
			<h4>Hledali jste: <span class="text-primary"><?php if(ISSET($_POST['search'])){echo date("F", mktime(null, null, null, $_POST['month']));}?></span> <span class="text-primary"><?php if(ISSET($_POST['search'])){echo $_POST['year'];}?></span></h4>
			<table class="table table-bordered">
				<thead class="alert-info">
					<tr>

search.php

require'conn.php';
	
	if(ISSET($_POST['search'])){
		$month=$_POST['month'];
 	$year=$_POST['year'];

 		$query=mysqli_query($conn, "SELECT * FROM `databaze` WHERE  month(cas)='$month' AND year(cas)='$year'") or die(mysqli_error());
		while($fetch=mysqli_fetch_array($query)){
			echo "<tr><td>".$fetch['cas']."</td><td>".$fetch['popis']."</td><td>".$fetch['poznamka']."</td></tr>";
		}

 Vytvoří se mi combobox , kde se mi vypíšou názvy měsíce ale vypíši se mi anglicky,

nedopisuji ji celé kody ale to snad nebude důležité

Potřeboval bych to převést do českého jazyka ty měsíce,

Lze to vůbec?

Děkuji

Nahlásit jako SPAM
IP: 46.174.58.–
gna
~ Anonymní uživatel
1891 příspěvků
21. 2. 2020   #2
-
0
-

Funkcí setlocale můžeš přepnou na češtinu, ale samozřejmě to vyžaduje, aby byla na serveru nainstalovaná. Jinak to holt musíš řešit vlastním seznamem názvů měsíců.

Nahlásit jako SPAM
IP: 213.211.51.–
krpik0
Newbie
21. 2. 2020   #3
-
0
-

#2 gna
no to asi nezapnu tuto funkci si myslím tedy.

Tak mě napadlo

$Nazev_mesice = array('Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'); 

A potom to echem nechat vypsat z názvu do mouth 

echo($Nazev_mesice[$month]);

.

.

$month = date('F', mktime(0, 0, 0, $i));
Nahlásit jako SPAM
IP: 46.174.58.–
krpik0
Newbie
21. 2. 2020   #4
-
0
-

#3 krpik
Neee to ne zkoušel jsem to a array není řešení.

$mesice ('january => Leden ,,,,);

vyselektují mounth mysql takže se to propíše v angličtině a otázka zda to půjde přepsat do češtiny měsíce

Nahlásit jako SPAM
IP: 46.174.58.–
gna
~ Anonymní uživatel
1891 příspěvků
22. 2. 2020   #5
-
0
-

Nějak se ztrácím v tom, o co se pokoušíš. Jazyk použitý ve funkci date se nastaví funkcí setlocale.

Pokud použiješ vlastní seznam, tak funkci date nepotřebuješ. Akorát indexy takhle definovaného pole začínají od nuly.

Takže můžeš od čísla měsíce odečítat jedničku. Nebo na začátek vložit prvek navíc ať se zbytek posune. Nebo to pole definovat i s klíčy.

$i = 1

$nazvy = ['Leden', ..., 'Prosinec'];
echo $nazvy[$i - 1]; // 1 -> 0 -> Leden

$nazvy = ['XXX', 'Leden', ..., 'Prosinec'];
echo $nazvy[$i]; // 1 -> Leden

$nazvy = [1 => 'Leden', ..., 12 => 'Prosinec'];
echo $nazvy[$i]; // 1 -> Leden
Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1891 příspěvků
22. 2. 2020   #6
-
0
-

A u té poslední varianty teda nemusíš psát ta čísla u všech měsíců. Stačí u prvního a další se budou automaticky zvyšovat.

$nazvy = [1 => 'Leden', 'Unor', ..., 'Prosinec'];
Nahlásit jako SPAM
IP: 213.211.51.–
krpik0
Newbie
23. 2. 2020   #7
-
0
-

#6 gna
opraveno tedy

 <?php
// set the month array
$MonthArray = array(
                    "1" => "Leden", "2" => "Unor", "3" => "Brezen", "4" => "Duben",
                    "5" => "Kveten", "6" => "Cerven", "7" => "Cervenec", "8" => "Srpen",
                    "9" => "Zari", "10" => "Rijen", "11" => "Listopad", "12" => "Prosinec",
                );
?>

<select name="month">
    <option value="">Vyber mesic</option>
    <?php
  foreach ($MonthArray as $monthNum=>$month) {
$selected = (isset($getMonth) && $getMonth == $monthNum) ? 'selected' : '';
//Uncomment line below if you want to prefix the month number with leading 0 'Zero'
//$monthNum = str_pad($monthNum, 2, "0", STR_PAD_LEFT);
echo '<option ' . $selected . ' value="' . $monthNum . '">' . $month . '</option>';
    }
    ?>
</select>

ještě opravit výpis vybraného měsíce do češtiny ale to asi dělá ta funkce

("F", mktime(null, null, null, $_POST['month']))

Nahlásit jako SPAM
IP: 46.174.58.–
gna
~ Anonymní uživatel
1891 příspěvků
23. 2. 2020   #8
-
0
-

V postu máš číslo měsíce, mktime z něj udělá timestamp, ze kterého pak date zjistí název měsíce.

Takže to je to samé. Celé to vyhodíš a zase místo toho použiješ ten svůj $MonthArray.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 33 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý