Date.parseは、1970年1月1日00:00:00 UTC以降のミリ秒数を返します。有効でない場合は、NaNを返します。
は、新しい日付オブジェクトを作成する必要があり、有効な日付オブジェクトを取得するには、同様にあなたはそれをより多くのC#のスタイルをしたい場合はもちろん、文字列や日付のプロトタイプを拡張することができ
new Date(Date.parse(2015))
String.prototype.TryParseToDate = function() {
var parsedDate = Date.parse(this);
// todo, implement errorhandling
return new Date(parsedDate);
};
"2015".TryParseToDate(); // this returns the parsed date
Date.prototype.TryParse = function(inputString) {
var parsedDate = Date.parse(inputString);
// todo, implement errorhandling
return new Date(parsedDate);
};
var date = new Date();
date.TryParse("2015"); // this returns the parsed date
エラー処理の例
String.prototype.TryParseToDate = function() {
var parsedDate = Date.parse(this);
if(isNaN(parsedDate)){
throw "Not a valid date";
}
return new Date(parsedDate);
};
try {
"IWillCrash".TryParseToDate();
}
catch(err) {
console.log(err);
}
更新
大規模なシステムを構築している場合は、拡張パターンのプロトタイプが反パターンとみなされる可能性があります。小さなもののために、私はナエと言うでしょう、気にしないでください。必要な場合はいくつかのオプションがありますが、私は通常、utilライブラリを構築したり、自分のクラスですべてをラップします。後者は私のお気に入りです。
以下は、日付utilラッパーの例です。
var myDateUtils = function(){
\t var that = this;
\t that.TryParseToDate = function(value) {
\t var parsedDate = Date.parse(value);
\t if(isNaN(parsedDate)){
\t throw "Not a valid date";
\t }
\t return new Date(parsedDate);
\t };
\t // place other functions here
\t that.Greet = function(){
\t \t console.log("Hello");
\t }
\t // return constructed object
\t return that;
}
// construct object wrapper
var myDate = new myDateUtils();
myDate.Greet();
// Will crash
try {
\t var result = myDate.TryParseToDate("IWillCrash");
console.log(result);
}
catch(err) {
console.log(err);
}
// Will succeed
try {
\t var result = myDate.TryParseToDate("2015");
console.log(result);
}
catch(err) {
console.log(err);
}
use moment.js。それは素晴らしい機能と使いやすいです。 –