2014-05-22 42 views
2

我的C#服務器端代碼使用listJson,它生成時間字符串是這樣的:如何在JavaScript中將「/ Date(1399739515000)/」轉換爲日期格式?

"CaptureTime":"/Date(1399739515000)/"

如何轉換成在JavaScript客戶端的日期格式?

+1

你可能不希望在第一時間使用MS JSON序列化。 http://james.newtonking.com/json現在是非常實用的json序列化程序。 – sed

+0

請參閱此文章: http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx 並考慮使用JSON.NET,如史蒂夫提到的。 –

+0

可能重複[解析日期從web服務](http://stackoverflow.com/a/13637479/1048572) – Bergi

回答

0

真實短手:

Date.prototype.yyyymmdd = function() { 
    var yyyy = this.getFullYear().toString(); 
    var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based 
    var dd = this.getDate().toString(); 
    return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]); // padding 
}; 

var s='/Date(1399739515000)/'; 
var regex = /(\d+)/g; 
alert(new Date(parseInt(s.match(regex))).yyyymmdd()); 

Reference

1

你可以像下面這樣做

<script> 
d = new Date(1399739515000) 
</script> 

那麼d將是一個JavaScript變量,然後可以操縱它在你的腳本, 這樣的代碼,例如

d.toUTCString(); 
1

感謝@ fedmich:

var s='/Date(1399739515000)/'; 
var r=/\/Date\((\d*?)\)\//.exec(s); 
var d=new Date(parseInt(matches[1])); 
console.log(d.getFullYear() + '-' + d.getMonth() + '-' + d.getDate()); 

http://jsfiddle.net/walkingp/7cA9p/

+0

Cool :)將您的答案標記爲您選擇的答案,然後 – fedmich

相關問題