2017-06-17 8 views
0

Das Datumstag in HTML5 (<input type="date">) sendet immer Daten im Format JJJJ-MM-TT, unabhängig davon, welches Format die Benutzer verwenden. Das ist großartig, aber die Standardeinstellungen des Browsers sind normalerweise hässlich.bootstrap-datepicker sendet falsches Datumsformat

Also versuche ich bootstrap-datepicker zu verwenden, um Benutzern zu helfen, Daten zu wählen. Ich starte es so, und es öffnet sich richtig:

$('#expirationDate').datepicker({ 
    format: "dd.mm.yyyy" 
}); 

Leider bootstrap-datepicker scheint auf den Server die gewählte Datum in Benutzer-Format zu senden (dh TT/MM/JJJJ.). Dies ist offensichtlich ein Problem, da Benutzer unterschiedliche Präferenzen haben können.

Kann bootstrap-datepicker Daten im "YYYY-MM-DD" -Format senden, ohne das lokale Format des Benutzers zu berücksichtigen? Für mich ist das "common sense" Funktionalität, aber ich habe keine Dokumentation darüber gefunden.

Wenn die Antwort auf obige Frage "nein" ist, können Sie bitte einen anderen Datums-Picker empfehlen, der gut in Symfony 3 und Twig integriert ist?

+0

Überprüfen Sie die My Ans .... –

Antwort

0

Es scheint, dass es ohne Javascript oder PHP-Verarbeitung nicht möglich ist. Das ist ziemlich traurig, da dies eine sehr häufige Situation ist.

Meine Lösung war JQuery UI anstelle von bootstrap-datepicker zu verwenden. Ich habe zwei Felder:

  • ein verstecktes Feld, das das Datum in YYYY-MM-DD speichert und dessen Wert
  • ein sichtbares Feld in Backend verarbeitet, die von Datepicker verwendet wird, aber es wird nicht von Backend verarbeitet.

Auf dem zweiten Feld, benutzte ich altField und altFormat das erste Feld zu füllen:

$(function() { 
    $("#theDateUI").datepicker({ 
      dateFormat: "dd.mm.yy", 
      altField: $("#theDate"), 
      altFormat: "yy-mm-dd" 
    }); 
}); 
0

Ändern Sie die CLIP-Funktion dazu:

$('#sandbox-container input').datepicker({ 
 
    format: "dd/mm/yyyy" 
 
});

o/

+0

Bitte ... Ihre Schnipsel bearbeiten und Bibliotheksdateien für Bootstrap hinzufügen .. mit Arbeit Snippet –

+0

Ich habe das, aber es wird das Datum an den Server im TT-MM-JJJJ-Format senden.Was ich will ist, dass der Benutzer das Datum im Format "TT-MM-JJJJ" auswählen, aber an den Server "JJJJ-MM-TT" -Format senden. – user3429660

0

In PHP

MySQL-Datenbank benötigt Datumsformat in Y-m-d Format so, falls Fügen Sie dieses Datumsformat in die Datenbank ein Sie müssen das Datumsformat ändern, das von Datepicker kommt.

Beispiel:

$mydate = date("Y-m-d", strtotime($_POST['date'])); 

$("#Date").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd-mm-yyyy" 
 
}) 
 

 

 
$("#Date2").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy-mm-dd" 
 
}) 
 

 
$("#Date3").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy-M-dd" 
 
}) 
 

 
$("#Date4").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd-M-yyyy" 
 
}) 
 

 

 
$("#Date5").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "dd/M/yyyy" 
 
}) 
 

 
$("#Date6").datepicker({ 
 
    autoclose:true, 
 
    orientation: "bottom", 
 
    format: "yyyy/M/dd" 
 
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"/> 
 
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/css/bootstrap-datepicker3.css" rel="stylesheet"/> 
 

 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/js/bootstrap-datepicker.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script> 
 

 
1) dd-mm-yyyy : <input type="text" id="Date" placeholder="01-12-2016" /> 
 
<br><br> 
 

 
2) yyyy-mm-dd : <input type="text" id="Date2" placeholder="2016-12-01" /> 
 
<br><br> 
 
3) yyyy-M-dd : <input type="text" id="Date3" placeholder="2016-Dec-01" /> 
 
<br><br> 
 
4) dd-M-yyyy : <input type="text" id="Date4" placeholder="01-Dec-2016" /> 
 
<br><br> 
 
5) dd/M/yyyy : <input type="text" id="Date5" placeholder="01/Dec/2016" /> 
 
<br><br> 
 
6) yyyy/M/dd : <input type="text" id="Date6" placeholder="2016/Dec/01" />

+0

Ich tat das, aber es wird das Datum an den Server in dd senden -mm-JJJJ-Format. Was ich will ist, dass der Benutzer das Datum im Format "TT-MM-JJJJ" auswählen, aber senden Sie es an den Server "JJJJ-MM-TT" -Format – user3429660

+0

müssen Sie das Format vor dem Speichern in der Datenbank ändern –

+0

kann ich wissen in der Sprache arbeitest du eigentlich .. –