code_junkie

Deserializing Client-Side AJAX JSON Dates

Nov 10th, 2011
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. "/Date(1221644506800-0700)/"
  2.  
  3. Sys.Serialization.JavaScriptSerializer.deserialize("/Date(1221644506800-0700)/")
  4.  
  5. new Date(parseInt(value.replace("/Date(", "").replace(")/",""), 10))
  6.  
  7. var s = "/Date(1221644506800-0700)/";
  8. var m = s.match(/^/Date((d+)([-+]dd)(dd))/$/);
  9. var date = null;
  10. if (m)
  11. date = new Date(1*m[1] + 3600000*m[2] + 60000*m[3]);
  12.  
  13. Sys.Serialization.JavaScriptSerializer.deserialize(""\/Date(1221644506800)\/"")
  14.  
  15. Script.Serialization.JavaScriptSerializer jss = new Script.Serialization.JavaScriptSerializer();
  16. string script = string.Format("alert(Sys.Serialization.JavaScriptSerializer.deserialize({0}));", jss.Serialize(jss.Serialize(DateTime.Now)));
  17. Page.ClientScript.RegisterStartupScript(this.GetType(), "ClientScript", script, true);
  18.  
  19. var serializedDateTime = "/Date(1271389496563)/";
  20. document.writeln("Serialized: " + serializedDateTime + "<br />");
  21.  
  22. var toDateRe = new RegExp("^/Date\((\d+)\)/$");
  23. function toDate(s) {
  24. if (!s) {
  25. return null;
  26. }
  27. var constructor = s.replace(toDateRe, "new Date($1)");
  28. if (constructor == s) {
  29. throw 'Invalid serialized DateTime value: "' + s + '"';
  30. }
  31. return eval(constructor);
  32. }
  33.  
  34. document.writeln("Deserialized: " + toDate(serializedDateTime) + "<br />");
  35.  
  36. String.prototype.dateFromJSON = function () {
  37. return eval(this.replace(//Date((d+))//gi, "new Date($1)"));
  38. };
  39.  
  40. var date = new Date(parseInt(jsonDate.substr(6)));
  41.  
  42. new Date(1221644506800)
Add Comment
Please, Sign In to add comment