2017-07-31 2 views
1

私の関数は、この形式のカレンダーの選択した日付を返します。これはJavaScriptで有効な日付ですか?

var returnValue = "6.7.2017"; //day.month.year 

私は新しい日のためにそれを使用しようとすると、それは動作しません:

var weekdays = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']; 
var wkdayname = new Date(returnValue); //Error: returnValue ist NaN 
var dayName = weekdays[wkdayname.getDay()]; 

私が欲しいのはただでありますこの日の平日の名前。

ご意見はありますか?

+2

聞いている:あなたは 'returnValue'を返したのですか? 'new Date( '6.7.2017')'が動作するようだから – Jorg

+0

これはうまくいきます。日付は、提供している形式をサポートしています。あなたのコードを共有できますか? – Sumit

+0

新しい日付(returnValue.replace(/\./ g、 ' - ')) 'を試してください。あなたがライブラリのために開いているなら、あなたはmoment.jsを使うべきです。次に、 'moment(returnValue、" MM.DD.YYYY ")'を実行できます。 /:あなたはまた、HTTPS([MDN]正しくコンストラクタをフォーマットするために、 '新しいDate'への参照をチェック – Rajesh

答えて

0

日付形式はまた、日と月はDate()が認識する形式に切り替えました。

function transformDate (date){ 
 
\t var day_month_year = date.split(".") 
 
    return [day_month_year[1],day_month_year[0],day_month_year[2]].join("/") 
 
} 
 

 
var returnValue = "6.7.2017"; //This is a string 
 

 
var weekdays = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']; 
 
var wkdayname = new Date(transformDate(returnValue)); 
 
var dayName = weekdays[wkdayname.getDay()]; 
 
alert(dayName)

+0

このソリューションは、Firefoxで絶対にうまく動作します!ありがとうございました! – louis12356

+0

多くの重複があります。あなたはパーサーを完全に避けるべきです、組み込みのパーサーが苦労しています。ビルトインパーサによって解析される別の文字列をフォーマットするために文字列を解析することは意味がありません。文字列を解析して、Dateコンストラクタに渡します。 – RobG

+0

うん...私は^^ – louis12356

-1

あなたはDate.parse() APIを使用して、日付文字列を検証することができます。この機能は、有効な形式に.日最初の表記法を使用して、日付文字列を変換します。

しかし、このAPIの有効性は、ISO 8601またはRFC 2822の両方の日付形式を受け入れるため、少し緩いです。有効なdateの場合、APIはepoch timeを返します。これを使用して、JavaScriptのDateオブジェクトを作成できます。それ以外の場合はNaNを返します。 dayを取得するためとして

- あなたは.getDay() APIを使用することができます。

例:

if (Date.parse("aaabbcc")) { 
 
    console.log("aaabbcc is Valid"); 
 
} 
 
else { 
 
    console.log("aaabbcc is invalid"); 
 
} 
 

 
if (Date.parse("6.7.2017")) { 
 
    var date = new Date(Date.parse("6.7.2017")); 
 
    console.log("6.7.2017 is Valid"); 
 
    console.log("The day of the week is => " + date.getDay()); 
 
} 
 
else { 
 
    console.log("6.7.2017 is invalid"); 
 
}

参考文献: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

+0

があなたの第二の基準にアドバイスを参照してください方法を知ってはいけない:「* Date.parseを使用することは推奨されていない...日付文字列を解析する方法を別のホストには多くの違いが残っています、したがって、日付文字列をする必要があります手動で解析*されます。 – RobG

関連する問題