var d=new Date("2012-07-01 00:00:00.0");
alert(d.getMonth());
但要NAN
。
对于上述日期,我希望月份为July
。
var d=new Date("2012-07-01 00:00:00.0");
alert(d.getMonth());
但要NAN
。
对于上述日期,我希望月份为July
。
假设你的日期是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" ];
console.log("The current month is " + months[parseInt(arr[1],10)])
你需要为它创建一个数组:http://www.w3schools.com/jsref/jsref_getmonth.asp
也是为什么不初始化您的日期为: 变种d =新的日期(2012,7,1);
尝试这样的:
var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];
document.write("The current month is " + months[d.getMonth()]);
一月至> 0,二月-1等等...
试试这个:
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()+1; //get the value of month
alert(m); // Display the month value
注意: getMonth()返回范围0-11中的值。因此+1范围1-12中的值。
他想要几个月的名字 – Kageetai
你可以使用这个库来简化操作。 http://www.datejs.com/ 然后再试试下面的代码:
var d=new Date.parse("2012-07-01 00:00:00.0");
alert(d..tString('MMMM'));
javascript日期对象不存储月份的全名。所以你必须使用一个数组。
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()]);
使用the 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"
似乎每个现代浏览器都支持http://caniuse.com/#search=internationalization –
简短的回答:与上面的代码大部分人会得到一个警报,6
这些天,因为Chrome和Firefox现在明白了格式。它是6而不是7,因为Date
将月份理解为从0开始的索引,所以0是Jan,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://tools.ietf.org/html/rfc2822#section-3.3中描述。
你可能更愿意虽然使用此构造:
new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);
在你的榜样,你会叫它像这样:
var d=new Date(2012, 6, 1);
注6和7未不过! Date
将月份理解为以0开始的索引,所以0是Jan,1是2月,2是3月等。
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]);
您可以了解更多关于Date
这里:使用日期构造函数,但更容易转化为July
这是询问时,这是令人困惑https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date
该字符串不解析... –
试试这个string =“2012-07-01 00:00:00”。可能是最后一个'.0'导致了问题 – PoeHaH
请参阅http://stackoverflow.com/questions/476105/how-can-i-convert-string-to-datetime-with-format-specification-in- javascript如果你想解析的格式 –