Datum od do v PHP – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Datum od do v PHP – MySQL – Fórum – Programujte.comDatum od do v PHP – MySQL – Fórum – Programujte.com

 

fruti0
Duch
9. 3. 2020   #1
-
0
-

Dobrý den, mám prosbu ohledně vložení datumu (např. zabrání místnosti v datu od do) v php do tabulky MS sql 2014. Jde mi o to jak správně replikovat řádky kde se bude v jednom sloupci navišovat datum o jeden a přeskakovat so + ne.

Snad jsem to napsal pochopitelně...

Nahlásit jako SPAM
IP: 165.225.72.–
kua, seknul sem se u 1.ho ukolu...
peter
~ Anonymní uživatel
3981 příspěvků
11. 3. 2020   #2
-
0
-

Zkousel jsi google?
google = ms sql date interval example now
google = ms sql time interval example
google = php date interval example now
google = php time between two dates example

"how to get the 30 days before date from Todays Date - Stack Overflow" 

SELECT DATE_ADD(NOW(), INTERVAL -30 DAY) -- mysql
SELECT getdate() - 30; -- mssql

"mssql 30 minute time intervals beteen 2 datetime - Stack Overflow"

declare @DateTime1 datetime = '2016/11/24 18:00:00'
    , @DateTime2 datetime = '2016/11/25 06:00:00'

select FORMAT(DATEADD(minute, (t.N - 1) * 30, @DateTime1), 'dd-HH:mm')
from cteTally t
where t.N <= (DATEDIFF(hour, @DateTime1, @DateTime2) * 2) + 1

--- 

DATEADD(MINUTE,30,@DateTime1) <= @DateTime2
-- to mi prijde lepsi, primo pouzit casove razitko

Tech 30 minut bys mel pricist nebo odecist od datumu, ktery bude konstantou. Cili, ne pro sloupec v db.
DATEADD(MINUTE,30,datum) <= tab.datum2
tab.datum1<=datum AND datum<=tab.datum2

PHP, google vetsinou vede do dokumentace php.net
https://www.php.net/…ime.diff.php
 

// Example #1 DateTime::diff() example

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
<?php
// Example #2 DateTime object comparison
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>


Hele, jestli ti mame kopirovat examply z manualu, tak je mozna neco spatne :)

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
peter
~ Anonymní uživatel
3981 příspěvků
11. 3. 2020   #3
-
0
-

navišovat datum o jeden a přeskakovat so + ne
navYšovat datum o jeden a přeskakovat so + ne

Hele, ale ty soboty a nedele nemuzes preskakovat. Do db ukladas casove razitko. Pokud tam to casove razitko (timestamp, datetime) ulozis v den mimo sobotu, nedeli, tak je to ok. Pokud ho ulozis ale v sobotu, tak musis vypsat i to v sobotu, ne?
Jako, muzes pridat php/sql prikaz, ktery urcuje den v tydnu. Ale, to mi prijde jako zbytecne, ne? Nebo to zkus mozna vic rozepsat, co mas a proc potrebujes prave tohle.

Treba, jako, kdyz mas tabulku s rozvrhem hodin skoly, tak ten, kdo zadava, to nezadava na so, ne. A kdyz jo, tak to pak chces videt. Takze te zajima interval po-pa v tydnu, ve kterem je datum xyz (treba uterni). To by slo napsat. Ale mozna bude jednodussi sql prikaz, ktery vybere cely mesic a ty z nej pak vypises konkretni tyden. Protoze casto potrebujes vypsat cely mesic. Ale, slo by to i sql prikazem. Da se najit googlem nebo v dokumentaci date/time funkci.
Treba, vysoka skola zadava rozvrh na pul roku (pro 1 semestr). Kdyz ma dalkove/duchodove studium, tak vetsinou se to uci koncem tydne v ct, pa nebo pa, so. A pak ma dny, kdy porada nejake akce, obsadi ucebny. A to vsechno chces v tom rozvrhu videt, preci. Samozrejme pro denni studium te nezajiji vyjimecne udalosti jako dalkove studium a akce, konference, tak to z db odfiltrujes podle typu rozvrhove akce. A pri vypisu mu so,ne nezobrazis, pokud tam nic neni.
Ale treba ucitel, ktery tu akci porada nebo uci jako deenne dochazejici, tak dalkove studium, tak to chce videt, co je jeho.
No, a rozvrhar nebo ten, kdo chce rezervovat mistnost, take chce videt vsechno, co neni zablokovane.

Cili, tehle tvuj pozadavek mi prijde zatim nelogicky, tak jsem ti k nemu nehledal vic info googlem. Casove razitko pro mesic se vytvari snadneji nez pro den v tydnu.

A to jsi jeste neuvazil svatky, velikonoce, osvobozeni republiky vanoce a pod. :)

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
fruti0
Duch
17. 3. 2020   #4
-
0
-

Ahoj,

Jde o to, že mám upravit stránky v PHP. V php jsem nikdy nedělal. Aplikace je pro zobrazení návštěv a v současné době je to tak, že se musí vyplnit návštěva na každý den.

Požadavek je takový aby se zadala návštěva na určitý počet dnů, od - do. Návštěvy nebudou realizovány o víkendech - proto přeskakovat so + ne. Svátky a podobné neřeším :)

Ideální řešení je aby se zkopírovaly řádky se zadanými hodnotami v databázi ms sql (s navyšujícím se datumem). Takže v databázi vznikne x řádků dle počtu dnů.

Nahlásit jako SPAM
IP: 78.80.26.–
kua, seknul sem se u 1.ho ukolu...
peter
~ Anonymní uživatel
3981 příspěvků
18. 3. 2020   #5
-
0
-

Aha. Tak to bych mozna postupoval tak, ze si udelam sloupce den, mesic, rok, id_skupina.
Skupina je vlastne obsah. V pripade rozvrhu je v tabulce skupina napsano:

id_skupina, nazev, predmet, id_ucitel, Id_zadal, date_zadal (zadal / zablokoval mistnost)
cviceni, dejepis, Honzik, rozvrhar_pavel, datum
prednaska, dejepis, Honzik, admin_peter, datum

No, a ted jde o to, ze kdyz to nekdo bude chtit zmenit, tk v databazi v tabulce1 to smazes podle id_skupina
DELETE FROM tab1 WHERE id_skupina=1
DELETE FROM tab2 WHERE id_skupina=1
INSERT INTO tab1 ...den1
INSERT INTO tab1 ...den2
INSERT INTO tab2 WHERE id_skupina=1

A cele to udelas v jedne transakci, takze se nemuze stat, ze by ti nekdo prepsal.
A v php vyresis ty dny, dne v tydnu a pod a vytvoris prislusny pocet sql dotazu INSERT.
Ja bych to tam vlozil i se svatky, jen uzivateli bych ot nezobrazoval, opet vyfiltroval v php.
 

A nebo je ta druha moznost, ze tam budes zadavat primo DATETIME jako 1 sql dotaz.
Kazdopadne, rozvrhy res urcite podle obsazeni mistnosti. U nas mame treba ISMUNI a tam se resi rozvrh zvlast podle ucitele a zvlast obsazeni mistnosti. Jakoze to musis rezervovat uciteli, ze tehdy a tehdy uci a jeste rezervovat mistnost, kde :)
Tu bych pouzil spis nez resit pocet dnu mezi A a B.

k php je pomerne slusna dokumentace online, kde jsou priklady od lidi. A da se vygooglovat spousta prikladu (php4). Jen si je musis umet upravit pro tvou verzi php (php5.x nebo 7).

php.net/date
php.net/mktime
date('N', time()) // 1-7 (den v tydnu)
date('N', mktime(0, 0, 0, 7, 1, 2000)) // 1-7 z datumu 1.7.2000
Cyklem to budes zvysovat po jednom dni.
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997)); // automatically calculate the correct value for out-of-range input "Jan-01-1998"

To ti ale muzu kopirovat pasaze z dokumentace. To neni efektivni. Si to radeji projdi, to mas za 5-10 min, mi to trva tak 20 to vypsat sem :)

Nahlásit jako SPAM
IP: 193.84.199.–
peter
~ Anonymní uživatel
3981 příspěvků
18. 3. 2020   #6
-
0
-
Nahlásit jako SPAM
IP: 193.84.199.–
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, 2 hosté

Podobná vlákna

Datum v PHP — založil Ota

Datum v php — založil jura

Datum v SQL a PHP — založil Erik

 

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