Format daty Zend PHP


Chcę wprowadzić do bazy danych znacznik czasu w poniższym formacie.
yyyy-mm-dd hh:mm:ss


Jak mogę dostać się do powyższego formatu?

Kiedy używam
$date = new Zend_Date();

wraca

miesiąc DD, rrrr hh: mm: ss PM

Używam również kalendarza JavaScript, aby wstawić wybraną datę i wraca do


format dd-mm-rrrr
Teraz chcę przekonwertować oba te formaty na rrrr-mm-dd gg: mm: ss, aby można je było wstawić do bazy danych.

Ponieważ format daty nie jest zgodny z formatem pola bazy danych, data nie jest wstawiana i wypełniona tylko *

00-00-00 00:00:00


*
Dziękuję za odpowiedź
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jestem pewien, czy to ci pomoże, ale spróbuj użyć:
// to show both date and time,
$date->get('YYYY-MM-dd HH:mm:ss');// or, to show date only
$date->get('YYYY-MM-dd')
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Technicznie @stefgosselin dał

poprawna odpowiedź
https://coderoad.ru/6201768/
dla
Zend_Date
, ale
Zend_Date
jest kompletnym przesadą, jeśli chodzi o proste pobieranie aktualnego czasu w zwykłym formacie.
Zend_Date
jest niesamowicie powolny i kłopotliwy w użyciu w porównaniu z natywnym Rozszerzenia związane z datą PHP. Jeśli nie potrzebujesz tłumaczenia lub lokalizacji w swoim wyjściu
Zend_Date
(a najwyraźniej nie potrzebujesz), trzymaj się od tego z daleka.
Posługiwać się

w tym celu natywna funkcja PHP
date
http://de3.php.net/manual/en/function.date.php , np
echo date('Y-m-d H:i:s');

lub

DateTime Process API
http://de3.php.net/manual/en/f ... t.php
echo date_format(date_create(), 'Y-m-d H:i:s');

lub

DateTime Object API
http://de3.php.net/manual/en/datetime.format.php
$dateTime = new DateTime;
echo $dateTime->format('Y-m-d H:i:s');

Nie popełniaj powszechnego błędu, używając każdego komponentu oferowanego przez Zend Framework tylko dlatego, że go oferuje. Nie ma takiej potrzeby i faktycznie, jeśli możesz użyć natywnego rozszerzenia PHP, aby osiągnąć ten sam wynik przy mniejszym lub porównywalnym wysiłku, lepiej będzie, jeśli użyjesz własnego rozwiązania.
Ponadto, jeśli zamierzasz przechowywać datę w swojej bazie danych, czy użyłeś któregokolwiek z

powiązane kolumny DateTime w jego bazie
http://dev.mysql.com/doc/refma ... .html
dane? Zakładając, że używasz MySql, możesz użyć kolumny Timestamp lub kolumny daty ISO8601.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oto jak to zrobiłem:
abstract class App_Model_ModelAbstract extends Zend_Db_Table_Abstract
{ const DATE_FORMAT = 'yyyy-MM-dd'; public static function formatDate($date, $format = App_Model_ModelAbstract::DATE_FORMAT)
{
if (!$date instanceof Zend_Date && Zend_Date::isDate($date)) {
$date = new Zend_Date($date);
} if ($date instanceof Zend_Date) {
return $date->get($format);
} return $date;
}
}

w ten sposób nie musisz się martwić, czy faktycznie jest to instancja daty Zend, możesz podać ciąg znaków lub cokolwiek jest datą.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

prostym sposobem korzystania z Zend Date jest utworzenie określonej funkcji w obiektach biznesowych, która umożliwia sparametryzowanie tej funkcji w formacie daty. Pod tym adresem znajdziesz dobry przykład

http://www.pylejeune.fr/framew ... _date
http://www.pylejeune.fr/framew ... date/
/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

to zrobiłem to:
Zend_Date::now->toString('dd-MM-yyyy HH:mm:ss')

wynik w tym formacie to „03-24-2012 13:02:01”

i możesz zmienić format daty



Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W przeszłości zawsze używałem metody
$ date- & > __ toString ('RRRR-MM-dd GG-mm-ss');
, ale dzisiaj nie działa. Otrzymywałem domyślne wyjście

„Lis 1, 2013 12:19:23 PM”

Więc dzisiaj użyłem
$ date- & > get ('RRRR-MM-dd GG-mm-ss');
jak wspomniano powyżej. Wygląda na to, że rozwiązało mój problem.
Więcej informacji na ten temat można znaleźć w formatach wyjściowych tutaj:

http://framework.zend.com/manu ... .html
http://framework.zend.com/manu ... .html

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się