• 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

Object Storage Arubacloud
0 głosów
422 wizyt
pytanie zadane 29 grudnia 2017 w PHP przez mi-20 Stary wyjadacz (13,190 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 (287,950 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,190 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 (287,950 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,021 wizyt
pytanie zadane 11 marca 2017 w PHP przez BjoTrek Nowicjusz (180 p.)
0 głosów
1 odpowiedź 297 wizyt
pytanie zadane 10 listopada 2018 w JavaScript przez marek86 Nowicjusz (120 p.)
–1 głos
1 odpowiedź 1,554 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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!

...