Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

MySQL DB turiu pradinę datą ir galutinę datą.

Noriu gauti šių datų skirtumą t.y. galutinedata - pradinedata.

 

Kaip tai padaryti?

 

Rašau taip:

$Data = $row['galutinedata'] - $row['pradinedata'];

 

Tačiau šitą skaičiuoja tik metų skirtumą. T.y. dabar man išveda 0.

 

PVZ.

 

Gal. data: 2013-03-20

Pra. data: 2013-03-10

 

Noriu kad ats būtų: 10. T.y. 2013-03-20 - 2013-03-10.

 

Kaip tai gauti?

 

Dabar man išveda 0. Jei galutinę datą padarau 2014 išveda 1.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki,

 

MySQL DB turiu pradinę datą ir galutinę datą.

Noriu gauti šių datų skirtumą t.y. galutinedata - pradinedata.

 

Kaip tai padaryti?

 

Rašau taip:

$Data = $row['galutinedata'] - $row['pradinedata'];

 

Tačiau šitą skaičiuoja tik metų skirtumą. T.y. dabar man išveda 0.

 

PVZ.

 

Gal. data: 2013-03-20

Pra. data: 2013-03-10

 

Noriu kad ats būtų: 10. T.y. 2013-03-20 - 2013-03-10.

 

Kaip tai gauti?

 

Dabar man išveda 0. Jei galutinę datą padarau 2014 išveda 1.

 

Pirmiausia, PHP prieš vykdydama skyrybos operaciją string konevertuoja į skaičių. T.y. eilutė

 

'2013-03-20' - '2013-03-10'

 

prieš skaičiuojant skirtumą tampa tokia:

 

2013 - 2013

 

Dėl datų. Jei nori surast skirtumą, paprasčiausias variantas būtų susikurti DateTime objektus ir panaudoti tam skirtus metodus:

 

<?php

$dateFrom = new DateTime('2013-03-10');
$dateTo = new DateTime('2013-03-20');

echo $dateTo->diff($dateFrom)->format('%a days'); // Rezultatas: 10 days

 

Kitas variantas (nerekomenduoju) būtų gauti Unix timestamp ir paskaičiuoti skirtumą matematiškai:

 

<?php

$timeFrom = strtotime('2013-03-10');
$timeTo = strtotime('2013-03-20');

printf("%d days", ($timeTo - $timeFrom) / 60 / 60 / 24); // Rezultatas: 10 days

Nuoroda į pranešimą
Dalintis kituose puslapiuose


mysql> SELECT DATEDIFF('2013-03-20','2013-03-10') AS skirtumas;
+-----------+
| skirtumas |
+-----------+
|        10 |
+-----------+
1 row in set (0.00 sec)

 

Ir kam naudot kažką papildomai iš PHP?

Mintis teisinga. Nebuvo nurodyta kokiame kontekste reikia rezultato. :)

Kuo daugiau alternatyvų pateiksime, tuo didesnė tikimybė, kad viskas bus panaudota pagal paskirtį.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...