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

odliczanie dokladnej daty od daty w php

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
634 wizyt
pytanie zadane 29 grudnia 2017 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
Witam,  wiem że dużo tego w sieci jednak nie mam tego co mi dokładnie jest potrzebne, otóż:

mam dwie daty, powiedzmy:

2017-12-18 20:24:22  i  2017-12-20 20:24:22

i w jaki sposób od większej daty odliczyć tą mniejszą tylko dokładną, tzn nie same dni ale też godziny, minuty i sekundy.

I jeszcze jeśli chciałbym żeby to było dynamiczne i wykonał bym to w js-ie to czy użyć do tego czystego js czy ajax-a ponieważ docelowo po tym jak czas wyniesie zero mają usunąć się dane z bazy i w czystym js może to chyba nie być bezpieczne?

2 odpowiedzi

+1 głos
odpowiedź 29 grudnia 2017 przez Arkadiusz Waluk Ekspert (290,250 p.)
wybrane 29 grudnia 2017 przez mi-20
 
Najlepsza
Jeśli mowa o PHP to skorzystaj oczywiście z klasy DateTime, masz tam metodę diff, a jako jej wynik dostaniesz obiekt DateInterval, z którego możesz wyjąć różnicę tak jak potrzebujesz.

Nie wiem co dokładnie chcesz zrobić, ale jeśli akcja ma zostać zainicjowana w momencie od razu po tym gdy czas upłynie to tak, Ajax, który wykona żądanie do serwera. Wtedy musisz mieć coś, co będzie odliczało po stronie JS, ale również wypadałoby to sprawdzić po stronie PHP, serwera, aby ktoś nie oszukał.
komentarz 29 grudnia 2017 przez mi-20 Stary wyjadacz (13,250 p.)

też tak chciałem tylko w DateTime jest coś takiego:

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');

tylko w jaki sposób w miejsce daty ('2009-10-11') włożyć datę którą mam w zmiennej?

1
komentarz 29 grudnia 2017 przez Arkadiusz Waluk Ekspert (290,250 p.)
Tak samo. Zamiast stringa podstawiasz zmienną z datą i godziną.
+1 głos
odpowiedź 29 grudnia 2017 przez mtk3d Nałogowiec (46,690 p.)

http://php.net/manual/pl/datetime.diff.php

Ta metoda zwraca to:

http://php.net/manual/pl/class.dateinterval.php

Natomiast tak jak chcesz to zrobić, to w backendzie zrób tylko zabezpieczenie, że przed daną datą usunięcie nie zadziała, a w JS używasz AJAX do odpytania endpointu (oczywiście po zakończeniu odliczania), który usunie dane.

W JS różnice można policzyć tak:

var date1 = new Date("7/13/2010");
var date2 = new Date("12/15/2010");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());

Zmienna timeDiff, dostaje czas pomiędzy datami w ms, a z tego już łatwo policzyc dni, godziny, sekundy itd.

Problem jest jedynie taki, że jeśli kotś zamknie stronę przed zakończeniem odliczania, to dane nie zostaną usunięte.

Podobne pytania

0 głosów
0 odpowiedzi 1,092 wizyt
pytanie zadane 11 marca 2017 w PHP przez BjoTrek Nowicjusz (210 p.)
0 głosów
1 odpowiedź 371 wizyt
pytanie zadane 10 listopada 2018 w JavaScript przez marek86 Nowicjusz (120 p.)
–1 głos
1 odpowiedź 1,628 wizyt

93,434 zapytań

142,429 odpowiedzi

322,662 komentarzy

62,798 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

...