Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从html日期输入值中获取月份名称?_Javascript_Html_Date - Fatal编程技术网

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