2017-05-20 1 views
0

Ich möchte Epoch Format Wert der Benutzer Datetime Auswahl senden, wenn das Formular übermittelt wurdeWie könnte das Datatime-Formular das Epoch-Format anstelle des formatierten Datums senden?

Würden Sie mir bitte sagen, wie ich das mache? http://s529471052.onlinehome.fr/datetimeform/gpio/test5.htm

Ich erwarte, wie diese Epoche Daten mit GET-Methode senden: /test5.htm?datetime=1494335700

im Moment ist es hervorragend Format sendet, was nicht usuable in Backend wäre:

/test5.htm datetime = 29 + + Dezember 2016 + - + 10% 3A50 & submit =

-

By the way, aus unbekannten Gründen 'Löschen' und 'Kalender' graphico In der datetimeform werden keine Symbole angezeigt, auch wenn keine CSS-Datei vorhanden ist.

Antwort

1

Da die 'DateTimePicker'-Bibliothek, die Sie verwenden, keine Unterstützung dafür zu bietet, müssen Sie sie selbst patchen.

geben zunächst die bestehende #dtp_input1 Element ein name, so dass sie als Parameter gesendet wird:

<input id="dtp_input1" name="dtp_input1" type="hidden"/> 

Als nächstes werden wir die setValue() des Picker Haken müssen Methode, um den Wert des Felds in das Format wollen wir setzen : Jetzt

/* get the datetimepicker controller */ 
let picker = $(`.form_datetime`).data(`datetimepicker`); 

/* override its setValue() method */ 
let f = picker.setValue; 
picker.setValue = function(...xs) { 
    /* call the original method first */ 
    f.call(this, ...xs); 
    /* now set the linked field to epoch format */ 
    $(`#${this.linkField}`) 
     .val(`${(this.getDate() || new Date(0)).getTime()}`); 
}; 

, wenn Sie das Formular abschicken sollte es eine Abfrage in etwa so ergeben:

?datetime=20+January+2017+-+03%3A15&dtp_input1=1484842500000

Dabei ist dtp_input1 der Epochentyp und datetime ist die lesbare Zeichenfolge aus dem Textfeld.

+0

Vielen Dank, es ist genau das, was ich gesucht habe. Allerdings habe ich versucht, den Code, den Sie zur Verfügung gestellt, aber Epochenzeit wird nicht zurückgegeben. Habe ich etwas verpasst ? Ist die Bibliothek "moment.js" für die Zeitumwandlung in die Epoche erforderlich? (Ich habe es hinzugefügt) http://s529471052.onlinehome.fr/datetimeform/gpio/test7.htm –

+0

Sie haben die Feld-ID in "epoch" geändert, aber das Attribut "data-link-field" auf "dtp" gesetzt, das ist wahrscheinlich warum es nicht funktioniert. – Cauterite

+0

Sie haben Recht, das war das Problem, vielen vielen Dank. Könnte es möglich sein, die Datetime-formatierte Auswahl in das GET-Formular zu verstecken/nicht zu senden und nur epoch-Parameter zu behalten? Wie auch immer, deine erste Antwort hat mir sehr geholfen. –

Verwandte Themen