2012-06-25 20 views
10

Używam bazy danych mysql, ponieważ mam pole o nazwie request_date. Typ pola to sygnatura czasowa, a dane przechowywane w tym polu mają format 2012-05-16 14:59:18. Ale kiedy odzyskać tych samych danych przez node.js, dane są wyświetlane w przeglądarce jakoformat daty w węźle.JS

Fri Jun 08 2012 15:16:50 GMT+0530 (India Standard Time) 

Dlaczego ta zmiana formatu dzieje?

Pisałem to zapytanie:

SELECT 
biz_registration.reqid,biz_registration.request_date,biz_registration.req_status,biz_registration.annual_cost,biz_registration.rid,biz_contact.first_name,biz_contact.last_name 
FROM biz_registration 
INNER JOIN biz_contact ON biz_registration.reqid=biz_contact.reqid 
ORDER BY biz_registration.request_date 
DESC limit '+start+','+mlimit+'' 

kod html używam jest

options +='<div class="column" style="background-color: #E1E1E1;width:   100px;">'+result.reqid+'</div>'; 
options +='<div class="column" style="background-color: #E1E1E1;width: 160px;">'+result.request_date+'</div>'; 
+0

Jak ty konwersji daty z kwerendy w 'dzień spełnienia wymogu obiektu w node.js? Jak wyświetlasz datę w HTML? Zapytanie prawdopodobnie jest w porządku, jest to formatowanie HTML lub problem z tworzeniem obiektu "Date". – freakish

+0

Proszę napisać kod, którego używasz do przekonwertowania daty na obiekt Date js (jeśli tak) i kod, który generuje kod HTML. W js Data-objects miesiące zaczynają się od 0. Styczeń to miesiąc 0, czerwiec to miesiąc 5. – kioopi

+0

Jakiej biblioteki używasz do połączenia MySQL - Node.JS? – freakish

Odpowiedz

8

mam to pracę wymagając bibliotekę lub moduł o nazwie format daty. najpierw musimy zainstalować pakiet format daty przy użyciu

npm zainstalować dateformat

następnie u może wymagać go w ur kodowania. następnie u mogą tworzyć przedmiot odczytanych danych,

var dzień = DATEFORMAT (result.request_date "rrrr mm, dd H: MM: SS");

i wydrukuj.

+3

Należy pamiętać, że poprawny format dla mysql to: "rrrr-mm-dd GG: MM: ss" –

2

To, co widzisz, to po prostu domyślne formatowanie daty javascript. Jeśli chcesz to sformatowane inaczej, można użyć metod:

getDate(): Returns the date 
getMonth(): Returns the month 
getFullYear(): Returns the year 

na obiekcie data i połączyć wyniki z/lub - lub:, aby uzyskać żądany format.

Zapraszamy do obejrzenia: http://www.elated.com/articles/working-with-dates/ więcej szczegółów

21

miałem ten sam problem, aby to naprawić mój problem:

musisz „siły” połączenie mysql, aby go sformatować natychmiast, dodać to do Twój config (szczegóły połączenia):

host: 'localhost', 
user: 'root' 
// .... 
dateStrings: 'date' 
+0

Czy mógłbyś wyjaśnić więcej swojego rozwiązania? – abarisone

+0

Posiadałem bazę danych klientów z niektórymi zamówieniami, a kiedy chciałem wyświetlić datę zamówienia, otrzymałem bardzo długi format daty: (przykład z pierwszego wpisu) Potem próbowałem znaleźć proste rozwiązanie, więc mogę wyświetlić rzeczywista data "MM/dd/RRRR" i kod z góry działały idealnie. Znalazłem ten przykład w innej witrynie, teraz nie pamiętam. Jak to wygląda u mnie teraz: var = mysql.createPool basen ({ connectionLimit: 10, host: 'localhost', użytkownik: 'root', hasło: 'hasło', baza danych : "database", dataStrings: "date" }); – Balkana

+2

Wszystkie opcje z dokumentacji node-mysql: dateStrings: Wymuszaj typy dat (TIMESTAMP, DATETIME, DATE), które mają być zwracane jako łańcuchy, a następnie zawyżone do obiektów Date JavaScript. (Domyślnie: false) - Sam szukałem DATETIME – user353885

8

Ten config resolve kopalni, według node-mysql doc

host: 'localhost', 
 
    user: 'root', 
 
    password: '', 
 
    dateStrings:true, 
 
    database: "mydb"