2012-03-24 6 views
3

Ich habe eine Webanwendung, wo ich Informationen an eine Datenbank senden möchte.JQuery Datetime zu Millisekunden

Ich habe einen Datepicker, mit dem der Benutzer ein Datum auswählen und das Datum als "YYYY-MM-DD" formatieren kann. Darüber hinaus müssen die Benutzer auch eine Uhrzeit mit einer timepicker auswählen, die die Uhrzeit als "HH:MM" formatiert. Dies wird in eine DateTime Zeichenfolge als "YYYY-MM-DD HH:MM" verkettet.

Ich muss dies in Millisekunden umwandeln, damit die Datetime als das richtige Format für die Datenbank akzeptiert wird (Gebietsschemaformat YYYY-MM-DD HH:MM:SS.mmm).

Ich habe versucht, eine Vielzahl von Lösungen hier und anderswo zu versuchen und in Millisekunden zu konvertieren. Immer wenn ich concat versuche, konvertiere ich normalerweise einen NaN Fehler oder "ungültiges Datum" und ich kann nicht einfach die umgewandelten Millisekunden hinzufügen.

Gibt es eine Möglichkeit, dies in jQuery oder JavaScript zu tun?

+6

Dies ist etwas, das auf der Serverseite getan werden sollte. – Jon

Antwort

3

Ich habe es geschafft, diese selbst herauszufinden. Danke an diejenigen, die geantwortet haben. Es ist keine ideale Lösung, aber es funktioniert.

var d = $("#date").val(); 
var dateParts = new Date((Number(d.split("-")[0])), (Number(d.split("-")[1]) - 1), (Number(d.split("-")[2]))); 
var dateis = dateParts.getTime(); 

var timeEnd = $("#endtime").val(); 
var time1 = ((Number(timeEnd.split(':')[0]) * 60 + Number(timeEnd.split(':')[1]) * 60) * 60) * 1000; 

var timeStart = $("#starttime").val(); 
var time2 = ((Number(timeStart.split(':')[0]) * 60 + Number(timeStart.split(':')[1]) * 60) * 60) * 1000; 

var dateTimeEnd = dateis + time1; 
var dateTimeStart = dateis + time2; 

Was dies grundsätzlich der Fall ist, ist ein Datum von einem Datumsauswahl nehmen, und einen Anfang und ein endtime von einem Timepicker. Der Ajax akzeptiert 2 Datumzeiten, eine für Start, eine für Ende. Die obige Lösung ruft im Grunde alle Werte aus den Eingabewerten ab und konvertiert sie in Millisekunden. Es ist nicht der beste Weg, Dinge zu tun, aber es ist eine schnelle Lösung.

5
>> var datetime = new Date(); 
undefined 
>> datetime.getTime(); 
1332613433314 

date.getTime() gibt die Anzahl der Millisekunden seit 1970.01.01: obwohl

Diese serverseitige behandelt werden sollte.

+0

Ich habe so etwas versucht, aber ich kann nur mit dem Datum nur arbeiten. Immer wenn ich den Zeitabschnitt eingebe, heißt es "ungültiges Datum" – moikey

+1

Dann riecht * dein * Code, aber mein Code ist tadellos gültig. Geben Sie die Zeichenfolge an, die Sie in ein Date-Objekt konvertieren möchten, und wir können Ihnen helfen. –

+0

var date1 = neues Datum ($ ("# date"). Val()). GetTime(); var timeend = $ ("# endtime"). Val(); var time1 = Zahl (timeend.split (':') [0]) * 60 + Zahl (timeend.split (':') [1]) * 1000; var datetime = Datum1 + Zeitend; Ich bin sicher, das ist derjenige, der das "ungültige Datum" – moikey

0

Können Sie das JavaScript Date-Objekt verwenden?

Man könnte es wie so verwenden: var d = new Date(yyyy, MM, dd, hh, mm, 0, 0).getTime();

Sie initialisieren die Datum Objekt und verwenden Sie dann die getTime Funktion die Anzahl der Millisekunden seit dem 1. Januar zurückkehren, 1970.

0

I würde dies auf der Serverseite tun und die strtotime Funktion verwenden, um zu einem Zeitstempel zu konvertieren, der Ihnen eine Anzahl von Sekunden gibt, die, wenn Sie wirklich Millisekunden für irgendeine Art von Skript benötigen: 1 Sekunde = 1000 Millisekunden.

Wenn Sie jQuery verwenden, können Sie überprüfen, ob Sie vor dem Server-Skript eine gültige Datums-/Uhrzeit senden.

3

Ich weiß, Ihre eigentliche Frage nicht, aber ich habe einen Code aus, der die Datumsauswahl auf ein Minimum ausgewählten Tag wie heute festgelegt wird der Code wie folgt:

$("#datefield").datepicker({ 
    dateFormat:"yy-mm-dd", 
    minDate:new Date(new Date().getTime()) 
}); 

Der Rückgabewert des new Date().getTime() ist die Millisekunden von 1970/01/01 05:30 am (wie mein System)

0

$ ("# datefield"). datepicker ("getDate").Zeit bekommen(); macht den Trick

Verwandte Themen