Mam taki problem napisałem skrypt, który zwraca datę dodanie wpisu do bazy danych i teraz jak ten wpis był dodany mniej więcej godzinę temu to zwraca dobrze natomiast jak był dodany ponad godzinę temu to zwraca już błąd teraz pokazuje że był dodany
Wczoraj o godzinie 02 i minucie 36
A prawidłowa data to powinna być był dodany Dzisiaj o godzinie 15 i minucie 7
dam kod źródłowy tej funkcji
funkcja oblicz_date
public function oblicz_date($data) {
$czas_obecny = time();
$czas_dodania = $czas_obecny - $data;
if ($czas_dodania < 60) $this->data = "Mniej niż minutę temu";
else if ($czas_dodania < 1900) $this->data = "Około pół godziny temu";
else if ($czas_dodania < 3600) $this->data = "Godzinę temu";
else {
$data2 = date("Y-m-d H:i:s",$czas_dodania);
$obecna_data = date("Y-m-d H:i:s");
$data2_podzial = explode(" ",$data2);
$obecna_data_podzial = explode(" ",$obecna_data);
$data2_podzial2 = explode("-",$data2_podzial[0]);
$data2_podzial3 = explode(":",$data2_podzial[1]);
$obecna_data_podzial2 = explode("-",$obecna_data_podzial[0]);
$obecna_data_podzial3 = explode(":",$obecna_data_podzial[1]);
if ($obecna_data_podzial2[2] == $data2_podzial2[2]) {
$this->data = "Dzisiaj o godzinie " . $data2_podzial3[0] . " i minucie " . $data2_podzial3[1];
}
else if ($obecna_data_podzial2[2] != $data2_podzial2[2] and $czas_dodania < 80000) {
$this->data = "Wczoraj o godzinie " . $data2_podzial3[0] . " i minucie " . $data2_podzial3[1];
}
else {
$dzien_tyg = date("l",strtotime($data2));
$dzien_tygodnia = $this->oblicz_dzien_tygodnia($dzien_tyg);
$this->data = $dzien_tygodnia . " o godzinie " . $data2_podzial3[0] . " i minucie " . $data2_podzial3[1];
}
}
}
Wywołanie tej funkcji
$data1 = explode(" ",$uzywki2[2]);
$data2 = explode("-",$data1[0]);
$data3 = explode(":",$data1[1]);
$czas_wziecia = mktime($data3[0],$data3[1],$data3[2],$data2[1],$data2[2],$data2[0]);
$obiekt_data->oblicz_date($czas_wziecia);
Dodam, że czas w bazie danych jest przechowywany w postaci Y-m-d H:i:s