selfmade01: datetime momentjs invalid date

Beitrag lesen

Hallo,

aus der Doku wurde ich nicht ganz schlau, da ich dachte er erhält ein valides Datum.
Aber anscheinend ist ein Datum in der Form yyyy-mm-dd hh:mm:ss nur valide

Aber wieso willst du das Datum erst parsen, um es dann in genau dem selben Format wieder auszugeben?

eben nicht bzw. will ich es nur für den deutschen User im deutschen Format ausgeben. in die DB wird es jedoch im mysql datetime Format abgespeichert.

Das Problem ist die jqgrid-Tabelle diese gibt mir bestimmte Möglichkeiten um Zellen zu formatieren und wenn ich ein Formular aufrufe also die Felder editiere dass dann ein bestimmte andere Funktion aufgerufen wird.
Da ich hier jedoch für den User im Textfeld dann ein umformatiertes Datum stehen habe kommt wohl moment.js nicht damit klar.

in diesem Moment bräuchte ich moment.js gar nicht mehr da ich es ja schon für mich richtig formatiert habe.
Leider wird diese Funktion aber doch aufgerufen da dies intern von jqgrid gesteuert wird.

Es sieht so aus

  
{ name: 'lastTimeClean', width: 150 , editable: true ,sorttype:"date",  
											formatter:function (cellvalue, options, rowObject)//Formatter formatiert mein mysqldatum für die deutsche Ausgabe 											{																return changeMysqlDateTimeFormat(cellvalue, options, rowObject, '<?php echo  $_SESSION['lang']; ?>');  
},  
											unformat: pickDate }, //Pickdate hier wird mein Bootsrap datetimepicker aufgerufen falls es editiert wird  

hier die Function changeMysqlDateTimeFormat

  
				function changeMysqlDateTimeFormat(cellvalue, options, rowObject,lang)  
				{	  
						if (lang =="DE"){  
						moment.locale("de");  
						return datetime = moment(cellvalue).format("DD-MM-YYYY HH:mm");  
						}else{  
						return datetime = moment(cellvalue).format("YYYY-MM-DD hh:mm");  
						}	  
				}  

hier die pickdate

  
  
				function pickDate( cellvalue, options, cell ) {  
					setTimeout(function(lang){  
						var lang = '<?php echo  $_SESSION['lang']; ?>';  
								if(lang == "DE"){  
									$(cell) .find('input[type=text]').datetimepicker({ format:'DD-MM-YYYY HH:mm', 	autoclose:true,language: 'de', use24hours: true});  
								}else{  
									$(cell) .find('input[type=text]').datetimepicker({ format:'YYYY-MM-DD hh:mm', 	autoclose:true,language: 'en', use24hours: true});  
								}								  
					}, 200);  
				}  

Ich muss also irgendwie das Format anpassen.
da es um die selbe function geht  changeMysqlDateTimeFormat in der ich mit moment.js formatiere und diese einmal das korrekte mysql datetime format bekommt und einmal mein bereits geändertes muss ich mir an dieser Stell was einfallen lassen.

Entweder ich schaffe es über moment.js zu lösen oder muss unter jqgrid mir eine andere option suchen dies meine changeMysqlDateTimeFormat Function nur einmal aufruft

Grüße

Jürgen