10

私が試してみました

     var d=new Date("2012-07-01 00:00:00.0");
     alert(d.getMonth());   

しかし、取得しNANます。

July上記の日付は月が欲しいです。

4

8 に答える 8

18

日付がYYYY-MM-DD形式であると仮定します

var arr = "2012-07-01 00:00:00.0".split("-");
var months = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];
var month_index =  parseInt(arr[1],10) - 1;
console.log("The current month is " + months[month_index]);
于 2012-09-03T11:27:50.760 に答える
17

JavaScript Internationalization APIの使用:

var date = new Date("2012-07-01");

var monthName = new Intl.DateTimeFormat("en-US", { month: "long" }).format;
var longName = monthName(date); // "July"

var shortMonthName = new Intl.DateTimeFormat("en-US", { month: "short" }).format;
var shortName = shortMonthName(date); // "Jul"
于 2014-12-23T00:38:12.093 に答える
6

これを試して:

    var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
    var str="2012-07-01";   //Set the string in the proper format(best to use ISO format ie YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)
    var d=new Date(str);  //converts the string into date object
    var m=d.getMonth(); //get the value of month
    console.log(monthNames[m]) // Print the month name

注: getMonth()は、0〜11の範囲の値を返します。

別のオプションは使用することですtoLocaleString

var dateObj = new Date("2012-07-01");
//To get the long name for month
var monthName = dateObj.toLocaleString("default", { month: "long" }); 
// monthName = "November"

//To get the short name for month
var monthName = dateObj.toLocaleString("default", { month: "short" });
// monthName = "Nov"
于 2012-09-03T11:15:59.433 に答える
1

そのための配列を作成する必要があります:http ://www.w3schools.com/jsref/jsref_getmonth.asp

また、日付を次のように初期化してみませんか。var d = new Date(2012,7,1);

于 2012-09-03T10:53:34.643 に答える
1

Javascript Dateオブジェクトは、月のフルネームを格納しません。したがって、配列を使用する必要があります。

var dateString = "2012-07-01 00:00:00.0";

var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

var date = new Date(dateString.replace(" ", "T"));
alert(monthNames [date.getMonth()]);
于 2012-09-03T12:26:34.767 に答える
0

これで試してください:

var months = [ "January", "February", "March", "April", "May", "June",
   "July", "August", "September", "October", "November", "December" ];
document.write("The current month is " + months[d.getMonth()]);

1月->0、2月-1など...

于 2012-09-03T11:04:56.600 に答える
0

このライブラリを使用すると、作業が簡単になります。 http://www.datejs.com/ 次に、次のコードを試してください。

var d=new Date.parse("2012-07-01 00:00:00.0");
 alert(d..tString('MMMM'));
于 2012-09-03T11:19:38.137 に答える
0

簡単な答え:上記のコードを使用すると、6ChromeとFirefoxがその形式を理解するようになったため、ほとんどの人が最近アラートを受け取ります。Datesは月を0で始まるインデックスとして理解するため、7ではなく6です。したがって、0は1月、1は2月、2は3月などです。したがって、最も簡単な修正は次のとおりです。

var d=new Date("2012-07-01 00:00:00.0");
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var monthIndex = d.getMonth();
alert(months[monthIndex]);

(ただし、日付の作成には別のアプローチを使用することを検討してください!)

長い答え:

var d=new Date("2012-07-01 00:00:00.0");

問題は、ブラウザがその文字列を理解しないために無効な日付オブジェクトを取得していることです。ブラウザはこれについて一貫性がありません-ChromeとFirefoxは実際にそれを正しく解析し、6の代わりにアラートを出しNaNます。ただし、フォーマットを不正確にすることはまだ良い考えではありません。たとえば、現在のSafariはそれを解析しません。動作が保証されている形式については、https://www.rfc-editor.org/rfc/rfc2822#section-3.3で説明されています。

ただし、このコンストラクターを使用することをお勧めします。

new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);

あなたの例では、次のように呼びます。

var d=new Date(2012, 6, 1);

ただし、7ではなく6に注意してください。Datesは月を0で始まるインデックスとして理解するため、0は1月、1は2月、2は3月などです。これは、日付コンストラクターを使用する場合は混乱しますが、July要求されたコンストラクターに変換するのは簡単です。

var d=new Date(2012, 6, 1);
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var monthIndex = d.getMonth();
alert(months[monthIndex]);

詳細については、 httpsDate: //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Dateをご覧ください。

于 2017-03-23T03:02:27.703 に答える