2011-07-20 17 views
1
Date.parseWeird=Date.prototype.parseWeird=function(d) 
{ 
    return new Date(Date.parse(d)); 
}; 

var d = /Date(-65424600000)/ 

どのようにすればこの日付を解析し、MM/DD/YY形式で表示できますか?javascriptで日付オブジェクトを解析する

16/09/1956 
+1

予想される文字列は何ですか? – alex

+1

私は本当にここの質問を理解していません。あなたは 'Date'として負の数を解析しようとしていますか? – Pat

+0

どのようなことが '/ Date(-65424600000)/'ですか? –

答えて

2

私は余分を削除:

Date.parseWeird=Date.prototype.parseWeird=function(d) 
{ 
    return new Date(parseInt(/-?\d+/.exec(d)[0], 10)); 
}; 

var x = Date.parseWeird('/Date(-65424600000)/'); 
alert((x.getMonth()+1) + "/" + x.getDate() + "/" + x.getFullYear()); 

Expressは、0又は1を探し?、負の符号、数字の任意の数、+\dが続きます。

+0

ありがとう...このコードのために、私は普通のexperssionを少し説明することができ、execは何をするのですか? –

+2

'x.getMonth()+ 1'を忘れないでください。 –

+0

ジョン私は式を説明しました。 @アレックス、それを指摘してくれてありがとう。私はいつもそれを忘れる。 – Joe

2

の代わりにクライアント上でそれを固定し、サーバー上でそれを修正

http://james.newtonking.com/archive/2009/02/20/good-date-times-with-json-net.aspx

JsonConverters

JSONの日付のための標準的な、可能な異なる フォーマットの数でinteropingとき他のシステムでは無限です。幸いにも Json.NETには、カスタム日付の読み取りと書き込みを扱うソリューションがあります。 JsonConverters。 JsonConverterを使用して、タイプが のシリアル化方法をオーバーライドします。

public class LogEntry 
{ 
    public string Details { get; set; } 
    public DateTime LogDate { get; set; } 
} 

[テスト]

public void WriteJsonDates() 
{ 
    LogEntry entry = new LogEntry 
    { 
    LogDate = new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc), 
    Details = "Application started." 
    }; 

    string defaultJson = JsonConvert.SerializeObject(entry); 

    // {"Details":"Application started.","LogDate":"\/Date(1234656000000)\/"} 

    string javascriptJson = JsonConvert.SerializeObject(entry, new JavaScriptDateTimeConverter()); 

    // {"Details":"Application started.","LogDate":new Date(1234656000000)} 

    string isoJson = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter()); 

    // {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"} 

} 

ない場合は、あなたのためにこの仕事をしますか?

DEMO HERE

Date.parseWeird=Date.prototype.parseWeird=function(d) { 
    // remove anything not a digit or - and convert to number 
    return new Date(parseInt(d.replace(/[^\-\d]/g,""),10)); 
}; 

var d = "\/Date(-65424600000)\/" 
var newDate = Date.parseWeird(d); 
var mm = newDate.getMonth()+1; 
if (mm<10) mm="0"+mm; 
var dd = newDate.getDate(); 
if (dd<10) dd="0"+dd; 
document.write(""+mm+"/"+dd+"/"+newDate.getFullYear())