2016-07-29 47 views
0

ich diesen Code haben ein Datum, indem sie einen Wert von Datum von JS „String wurde nicht als gültige Datetime erkannt“

var _Sdate = new Date(Date.parse($("#LSDate").val())); 

Es war Schleife das ist abzurufen, warum ich 2 Termine bekam.

Result for day

Und jetzt bin ich immer diese Fehlermeldung:

Error.

Ich habe versucht, DateTime date1 zu setzen, aber ich habe auch einen Fehler bekommen.

+0

Ihr Bild zeigt eine Variable ' date1' im Debugger, ist das die Zeichenfolge, die Sie analysieren möchten? –

+0

Wie möchten Sie zwei verschiedene Daten in einer Zeichenfolge in eine "DateTime" konvertieren? Das ergibt keinen Sinn. –

+0

Wie erwarten Sie zwei Date-Strings in eine DateTime-Instanz zu stopfen? Wenn Sie ein wenig kritisch über Ihr Problem nachdenken und was Sie erreichen müssen ... –

Antwort

1

Das Datumsformat ist nicht das, was ein .Net DateTime Objekt analysieren kann, müssen Sie tatsächlich Ihr Datum machen sieht eher aus wie: 2011-03-21 13:26

prüfen this answer für erwartete Eingangsdaten für Datum und Uhrzeit eine Zeichenfolge zu analysieren, gibt mehrere Zeichenfolge sind Darstellungen, die man analysieren kann. (auch in diesen MSDN doc, Abschnitt Strings Datetime-Converting-Wert)

+0

Also sollte ich meinen Code von meinem JS ändern? –

+0

Ja, wäre einfacher zu ändere das, was du von der JS-Seite sendest, anstatt den Parsing-Teil auf der .Net-Seite zu verkomplizieren. – bsoulier

+0

Welchen Code soll ich sonst verwenden? Ich verwende nicht viele Codes. –

0

Mon Aug 1 2016 00:00:00 GMT 0800 (China

... etc ... ist nirgendwo in der Nähe eines gültigen Datetime.

Daher der ungültige DateTime-Fehler beim Analysieren.

Woher bekommen Sie diesen Wert?

DateTime.Parse Method (String)

Der .NET-Framework, wenn eine Zeichenfolge angegeben, muss verstehen, wie das in ein Datetime-Objekt zu drehen, und kann es nicht tun, dass mit dem, was Sie ihm zur Verfügung gestellt haben.

0

Danke für die Unterstützung Jungs. Ich habe eine Lösung gefunden, während ich ein Experiment mit meinen Codes durchführte. Ich benutze diese

var _Sdate = new Date(Date.parse($("#LSDate").val())); 
var _EndDate = new Date(Date.parse($("#LEDate").val())); 
var cbxAM = $('.cbox_leave_half').is(':checked'); 
var cbxPM = $('.cbox_leave_halfPM').is(':checked'); 
var IsAM, IsPM, date1 = ""; 
    var _halfdayCount = ""; 
      var x = 0; 
      var getfullhrAM = "12:00:00 AM" 
      var chkdateAM = "", chkdatePM = ""; 
      if (parseInt(_hashalfday) > 0) { 
       while (_Sdate <= _EndDate) { 
        var fulldate = (_Sdate.getMonth() + 1) + "/" + _Sdate.getDate() + "/" + _Sdate.getFullYear(); 
        var getcompile = fulldate + " " + getfullhrAM; 
        if (_Sdate != _EndDate) { 
         _halfdayCount = _halfdayCount + HalfDayrowsObj[x].HalfDay + ","; 
         date1 = date1 + getcompile + ","; 
        if (HalfDayrowsObj[x].HalfDay == true) { 
          if (cbxAM == true) { 
           chkdateAM = getcompile; 
          } else { 
           IsAM = false; 
          } 
         } 
        } 
        else { 
         _halfdayCount = _halfdayCount + HalfDayrowsObj[x].HalfDay; 
         NofDays = parseFloat(NofDays) + parseFloat('.5'); 
         date1 = date1 + +HalfDayrowsObj[x].HalfDay; 
        } 
        x++; 
        _Sdate.setDate(_Sdate.getDate() + 1); 
       } 
      } 
0

ich gerne für meine kleine js-Funktion bieten jedes js Datum in akzeptables Format für C# bekommen, SQL Server und PHP, mySQL

var jsdate = new Date(Date.parse($("#LSDate").val())); 
//jsdate is java-script date object 
//Before you send it to use at server, plz make it a string as following 
var _Sdate = getDateTimeString(_Sdate); 

//Now you get _Ssdate acceptable for c#,sql it would be like '2016-08-01 02:13:06' 

function getDateTimeString(dt) { 
    var dt = new Date(); 
    var m = dt.getMonth() + 1; 
    var y = dt.getFullYear(); 
    var d = dt.getDate(); 
    var mm = dt.getMinutes(); 
    var h = dt.getHours(); 
    var s = dt.getSeconds(); 
    if (m < 10) 
     m = "0" + m; 
    if (d < 10) 
     d = "0" + d; 

    if (h < 10) 
     h = "0" + h; 
    if (mm < 10) 
     mm = "0" + mm; 
    if (s < 10) 
     s = "0" + s; 
    return y + "-" + m + "-" + d + " " + h + ":" + mm + ":" + s; 
} 
+0

danke für die Sorge aber wie bekomme ich die 12:00 : 00 in meinem Controller? Weil die Uhrzeit in Datetime auf 12:00:00 eingestellt ist –