2016-07-13 4 views
-1

Ich habe ein Datum aus mysql wie:Convert yyyy-mm-dd von mySql in Javascript Datum

var a = '2016-09-09'; 
var date = new Date(a); 

Und es gibt:

Sa 9. Juli 2016 07.00.00 GMT + 0700 (SE Asia Standard Time)

Es soll sein: Sa Sept 09 2016. Warum zeigt Juli für den Monat? Irgendwelche Ideen ?

Dies ist der vollständige Code:

function addMarker(lat, lng, order, tgl) 
     { 
      var date2 = '<?php echo date('Y-m-d'); ?>'; 

      var a = new Date(tgl); 
      var b = new Date(date2); 
      console.log('Order : ' + order); 
      console.log('today : ' + a); 
      console.log('tgl : ' + b) 

      if (b <= a) 
      { 
       var myLatLng = {lat: lat, lng: lng}; 
       var marker = new google.maps.Marker({ 
       position: myLatLng, 
       icon:image2, 
       map: map, 
       title: '' + order 
       });    
      } 
      else 
      { 
       var myLatLng = {lat: lat, lng: lng}; 
       var marker = new google.maps.Marker({ 
       position: myLatLng, 
       icon:image1, 
       map: map, 
       title: '' + order 
       });    
       } 
     } 

Ich möchte nur zwei Tage, vergleichen und die verschiedenen Marker zeigen, wenn die heute stammen weniger als Datum von MySQL.

+0

Ich bekomme 'sept 8th' https://jsfiddle.net/vcjf5t5r/, auch der 9. ist Freitag im September. Sicher hast du das richtige PHP-Datum zurückgegeben? Angenommen, 'tgl' ist' '2016-09-09''. Es gibt auch kein 'mysql' in der Frage, das Tag wurde entfernt. – chris85

+0

Ich habe es bereits mit console.log (tgl) getestet; es gibt 2016-09-09 zurück. Aber wenn ich in var a = neues Datum (tgl) ändere; Und log es, es kommt in Jul für den Monat zurück –

+0

Was wird 'tgl' protokolliert? – chris85

Antwort

0

Die JavaScript-Funktion Date.parse akzeptiert ein formatiertes Datum RFC2822 or ISO 8601. Wenn Sie ein anderes Format verwenden, kann es einen unerwarteten Wert zurückgeben (zB das verwendete Datumsformat nicht verstehen).

Für ein von PHP bereitgestelltes Datum können Sie die <?php echo date('c'); ?> oder <?php echo date(DateTime::ISO8601); ?> verwenden. Beide geben ein ISO8601-formatiertes Datum zurück, das JavaScript analysieren kann.

Wenn MySQL verwenden Sie dann die Ausgabe als ISO8601 ähnlich formatiert werden durch den Import das Datum als PHP-Zeitstempel mit strtotime oder ein DateTime Objekt entweder umwandeln kann, was ich oben geschrieben oder haben MySQL den Wert als ISO8601 formatiert zurück: Format date in MySQL SELECT as ISO 8601