Javascript 如何从html日期输入值中获取月份名称?
这是日期输入Javascript 如何从html日期输入值中获取月份名称?,javascript,html,date,Javascript,Html,Date,这是日期输入 <input id="customer-date" name="customer-date" type="date" required> 但是,当我选择一个日期时,我在dateHandler中显示的值的格式类似于2017-11-22问题是format=“dd/MM/yyyyy”属性在显示日期时不使其在天数和月份之间保持一致,并且它显然令人困惑。因此,我希望从拾取的日期中获取月份名称,以显示它,例如2017-11-22。有什么想法吗?这是我提出的简单解决方案,希望能对您
<input id="customer-date" name="customer-date" type="date" required>
但是,当我选择一个日期时,我在
dateHandler
中显示的值的格式类似于2017-11-22
问题是format=“dd/MM/yyyyy”
属性在显示日期时不使其在天数和月份之间保持一致,并且它显然令人困惑。因此,我希望从拾取的日期中获取月份名称,以显示它,例如2017-11-22。有什么想法吗?这是我提出的简单解决方案,希望能对您有所帮助
函数showdate(){
var customerDate=document.getElementById('customer-date')。值;
var dateHandler=document.getElementById('date-handler');
dateHandler.innerHTML=customerDate;
var months=新数组();
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
var日期=新日期(客户日期);
var月=月[date.getMonth()];
//将日期转换为数组
var dateArr=customerDate.split(“-”);
//设置新的日期表单
var forDate=dateArr[0]+“-”+month+“-”+dateArr[2];
document.getElementById(“新日期处理程序”).innerHTML=forDate;
}
以下是我制作的简单解决方案,希望能对您有所帮助
函数showdate(){
var customerDate=document.getElementById('customer-date')。值;
var dateHandler=document.getElementById('date-handler');
dateHandler.innerHTML=customerDate;
var months=新数组();
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
var日期=新日期(客户日期);
var月=月[date.getMonth()];
//将日期转换为数组
var dateArr=customerDate.split(“-”);
//设置新的日期表单
var forDate=dateArr[0]+“-”+month+“-”+dateArr[2];
document.getElementById(“新日期处理程序”).innerHTML=forDate;
}
您可以使用date()
javascript函数,如:
Date.prototype.getFullDate = function() {
return this.getFullYear() + '-' + this.toLocaleString(undefined, {month:'long'}) + '-' + this.getDate();
}
const dateStr = document.getElementById('customer-date').value.split('/');
var date = new Date(dateStr[2], dateStr[1], dateStr[0]);
document.getElementById('date-handler').innerHTML = date.getFullDate();
您可以使用Date()
javascript函数,如:
Date.prototype.getFullDate = function() {
return this.getFullYear() + '-' + this.toLocaleString(undefined, {month:'long'}) + '-' + this.getDate();
}
const dateStr = document.getElementById('customer-date').value.split('/');
var date = new Date(dateStr[2], dateStr[1], dateStr[0]);
document.getElementById('date-handler').innerHTML = date.getFullDate();
如果您希望仅从月号中获取月名,可以使用以下方法:
var str = "2017-11-22"; // this would be your date
var res = str.split("-"); // turn the date into a list format (Split by / if needed)
var months = ["Jan", "Feb", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
console.log(months[res[1]-1]) // month name
jsiddle:如果您只是想从月号中获取月名,您可以使用以下方法:
var str = "2017-11-22"; // this would be your date
var res = str.split("-"); // turn the date into a list format (Split by / if needed)
var months = ["Jan", "Feb", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
console.log(months[res[1]-1]) // month name
JSFiddle:< /P> < P>当重新格式化日期字符串时,你应该总是考虑只重新格式化字符串和避免日期对象,就像Noy的答案一样。 但是,如果您采取预防措施避免解析和格式化的陷阱,也可以使用一些日期对象功能
这类问题是两个问题合一: 在第一种情况下,YYYY-MM-DD的日期格式应解析为UTC(某些浏览器可能不解析),因此您应手动解析该格式 第二部分是生成格式化字符串,您可以在支持的地方利用Intl对象以主机默认语言获取字符串,例如//将YYYY-MM-DD格式的字符串解析为本地字符串
函数parseYMD(s){
var b=s.split(/\D/);
返回新日期(b[0],b[1]-1,b[2]);
}
//使用主机默认语言将日期格式化为D-MMMM-YYYY作为月份名称
函数格式MMMY(日期){
函数z(n){返回(n)当重新格式化日期字符串时,应该总是考虑只重新格式化字符串和避免日期对象,至于Noy的答案。
但是,如果您采取预防措施避免解析和格式化的陷阱,也可以使用一些日期对象功能
这类问题是两个问题合一:
在第一种情况下,YYYY-MM-DD的日期格式应解析为UTC(某些浏览器可能不解析),因此您应手动解析该格式
第二部分是生成格式化字符串,您可以在支持的地方利用Intl对象以主机默认语言获取字符串,例如
//将YYYY-MM-DD格式的字符串解析为本地字符串
函数parseYMD(s){
var b=s.split(/\D/);
返回新日期(b[0],b[1]-1,b[2]);
}
//使用主机默认语言将日期格式化为D-MMMM-YYYY作为月份名称
函数格式MMMY(日期){
函数z(n){返回(ndid你看了吗?没有使用html5日期输入进行此操作。你必须使用你自己的或第三方javascript实现进行此操作,或将日期、月份和年份分为3个输入字段。你看了吗?没有使用html5日期输入进行此操作。你必须使用你自己的或第三方javascript实现进行此操作r执行此操作,或者分为3个输入字段,分别为天、月和年。getMonth
返回一个数字getMonth
返回一个数字属性与我一样,只是为什么要在数组的开头放一个空字符串?我发布时没有看到答案哈哈。空字符串是因为数组从0开始。没有第0个月。将+1
添加到索引中是更好的解决方案。我想是的,你是对的,你可以做如下操作:月[res[1]-1]-编辑几乎和我一样,只是为什么要在数组的开头放一个空字符串?在我发布时没有看到答案哈哈。空字符串是因为数组从0开始。没有第0个月。向索引中添加+1
是更好的解决方案,我想是的,你是对的,你可以这样做:月[res[1]-1] -编辑日期格式YYYY-MM-DD将被解析为UTC,但您使用的是当月的本地值,因此它将返回wro