2010-11-25 8 views
2

Avec asp.net j'ai regardé une valeur de cookie et voirObtenir la date de cookie dans ASP.NET

FireFox, Chrome:

"Thu Nov 25 2010 16:42:26 GMT-0500 (Eastern Standard Time)" 

IE8:

"Thu Nov 25 16:48:01 EST 2010" 

Je l'ai mis dans JS comme ça.

$.cookie('pluginLastDate', new Date); 

DateTime.Parse lève une exception avec ces deux styles de date. Comment puis-je obtenir une date compatible avec asp.net?

Répondre

1

Une solution possible consiste à utiliser la méthode toDateString() sur l'objet Date que vous créez en Javascript pour obtenir une chaîne de date qui peut être analysée en C#.

$.cookie('pluginLastDate', new Date().toDateString()); 

Cela rendra le Javascript date Thu Nov 25 2010. Mais, si vous avez besoin de plus de contrôle sur la sortie de date exacte, vous pouvez toujours construire manuellement la chaîne de date en Javascript en utilisant les nombreuses méthodes fournies par l'objet Date. Le lien suivant fournit une très bonne introduction à Javascript Date.

http://blog.boyet.com/blog/javascriptlessons/javascript-for-c-developers-date-basics/

0

Je fini par écrire un code.

Dans JS écrire ce

$.cookie('pluginLastDate', (new Date).toUTCString()); 

Ensuite, utilisez ceci avec l'aide System.Text.RegularExpressions pour analyser le datetime

string[] Months = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; 
    DateTime GetJSDate(string sz) 
    { 
     var m = Regex.Match(sz, @", (\d+) (\w+) (\d{4,}) (\d{2})\:(\d{2})\:(\d{2}) (GMT|UTC)"); 
     if (m.Success == false) 
      throw new Exception("Fail :("); 
     var y = Int32.Parse(m.Groups[3].Value); 
     var mo = Array.IndexOf(Months, m.Groups[2].Value) + 1; 
     var day = Int32.Parse(m.Groups[1].Value); 
     var h = Int32.Parse(m.Groups[4].Value); 
     var min = Int32.Parse(m.Groups[5].Value); 
     var se = Int32.Parse(m.Groups[6].Value); 
     var d = new DateTime(y, mo, day, h, min, se, DateTimeKind.Utc); 
     return d; 
    } 
Questions connexes