2016-08-09 155 views
0

Ich möchte das Datum in der Textbox als MM-DD-YY (or YYYY, idc) angezeigt, aber für die Zwecke von MySQL, ich brauche es in YYYY-MM-DD.Datepicker-Format: Wie bekomme ich ein anderes Format hinter die Kulissen?

Ich habe eine identische Frage hier gefunden, aber ich kann nicht die Antwort erhalten, um an meinem Ende zu arbeiten. Ich finde den Titel ein wenig irreführend, aber das beschriebene Problem scheint mir identisch zu sein.

jQuery datepicker altFormat not displayed

Der "altField" Eingang ist, weil ich nicht sicher bin, ob es in den datepicker enthalten ist, oder wenn es hinzugefügt werden muß. Ich kann es nicht so oder so schaffen. Das PHP ist für meine Zwecke im Debuggen, also kann ich sehen, was in die Abfrage eingefügt werden soll.

<form onsubmit="return(validateEvent())" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<label>Date</label> 
<input type="text" name="datepicker" id="datepicker"> 
<br/> 
<button type="submit" value="submit" name="submit">Add Event</button> 
<input type="text" name="altField" id="altField" hidden> 

<script> 
$(function() { 
    $("#datepicker").datepicker({ 
     dateFormat: "mm-dd-yy", 
     altFormat: "yy-mm-dd", 
     altField: "#altFormat" 
    }); 
}); 

<?php 
if(isset($_POST['submit'])) { 
    echo "<script>"; 
    $temp = $_POST["datepicker"]; 
    echo "alert('$temp');"; 
    echo "</script>"; 
} 
?> 

Jemand bitte helfen Sie meinen Verstand speichern O_o

Antwort

3

Sie falsch ids hatte und das verborgene Feld type=hidden haben sollte.

prüfen dies:

$(function() { 
 
    $("#datepicker").datepicker({ 
 
    dateFormat: "mm-dd-yy", 
 
    altFormat: "yy-mm-dd", 
 
    altField: "#altField" 
 
    }); 
 
    $('#btn1').click(function() { 
 
    console.log("Datepicker value: " + $('#datepicker').val()); 
 
    console.log("Datepicker alt value: " + $('#altField').val()); 
 
    }); 
 
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> 
 
<link rel="stylesheet" href="/resources/demos/style.css"> 
 
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 
<form onsubmit="" method="post" action=""> 
 
    <label>Date</label> 
 
    <input type="text" name="datepicker" id="datepicker"> 
 
    <input type="hidden" name="altField" id="altField"> 
 
    <br/> 
 
    <button type="submit" value="submit" name="submit">Add Event</button> 
 
</form> 
 
<br /><br /> 
 
<button id="btn1">View Values</button>

+0

scheint jetzt zu funktionieren, ich danke Ihnen sehr! Du hast gesagt, dass ich falsche IDs hatte, meintest du damit andere neben altField: "#altField"? (um nicht ein Stickler zu sein, dachte nur, du meintest ich mehr) – donutguy640

+0

@ donutguy640, ja, das Problem war die Sie 'altField:" #altFormat "' und Sie haben kein Element mit der ID = altFormat – Dekel

0

Sie cn das Datumsformat ändern

<?php 
if(isset($_POST['submit'])) { 
    echo "<script>"; 
    $temp = date('Y-m-d',strtotime($_POST["datepicker"])); 
    echo "alert('$temp');"; 
    echo "</script>"; 
} 

?> 
+0

Es gibt keinen Grund, php dafür zu verwenden, wenn Sie dies mit "datepicker" tun können. – Dekel

+0

oh..danke, so ist der Fehler verstecktes Feld @Dekel – ubm

+0

Überprüfen Sie meine Antwort. Es war eine falsche ID und ein verstecktes Feld. – Dekel

0

Der Datepicker Plugin JMT hat ein "get" -Methode den Datumstyp Satz zurückzukehren müssen wir das dann nur noch nach Bedarf formatieren. Hier können wir die formateDate() -Methode von datepickers verwenden, um sie vor der Übergabe zu formatieren.

var dateTypeVar = $('#datepicker').datepicker('getDate'); 
$.datepicker.formatDate('Y-m-d', dateTypeVar); 

https://jqueryui.com/resources/demos/datepicker/date-formats.html