如何在Javascript中将日期格式从dd-MMM-yyyy转换为yyyymmdd?

问题描述 投票:0回答:5

我有一个带有日期选择器的输入文本框,当用户选择特定日期时,日期“2014 年 12 月 9 日”将应用到输入文本框。提交时,我希望将日期以 yyyymmdd 格式传递到服务器,例如 20141209。那么如何在javascript中转换日期格式呢? var date = new Date(Date.parse('09-Dec-2014'));

上面的代码给了我“
无效日期

”。 在网上搜索解决方案,但找不到我的问题。

有人可以帮我吗?

谢谢。

javascript date date-formatting date-conversion
5个回答
4
投票

我能够使用下面给出的代码获取

yyyymmdd

格式的日期。 var date = '09-Dec-2014'.split("-"); var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; for(var j=0;j<months.length;j++){ if(date[1]==months[j]){ date[1]=months.indexOf(months[j])+1; } } if(date[1]<10){ date[1]='0'+date[1]; } var formattedDate = date[2]+date[1]+date[0];



2
投票
真正快速的事情可能是,拆分并生成你自己的。


1
投票

由于某种原因,浏览器令人惊讶地不支持日期格式“yyyy-mm-dd”,因此失败。

所有浏览器都绝对支持以下格式,建议坚持使用其中一种以避免错误:

var d = new Date(2011, 01, 07); // yyyy, mm-1, dd var d = new Date(2011, 01, 07, 11, 05, 00); // yyyy, mm-1, dd, hh, mm, ss var d = new Date("02/07/2011"); // "mm/dd/yyyy" var d = new Date("02/07/2011 11:05:00"); // "mm/dd/yyyy hh:mm:ss" var d = new Date(1297076700000); // milliseconds var d = new Date("Mon Feb 07 2011 11:05:00 GMT"); // ""Day Mon dd yyyy hh:mm:ss GMT/UTC alert(d.getFullYear()+""+(d.getMonth()+1)+""+((d.getDate()<10)?"0"+d.getDate():d.getDate()));

参考:

http://biostall.com/javascript-new-date-returning-nan-in-ie-or-invalid-date-in-safari


0
投票

const dateStr = str => { const months = {'jan': "01", 'feb': "02", 'mar': "03", 'apr': "04", 'may': "05", 'jun': "06", 'jul': "07", 'aug': "08", 'sep': "09", 'oct': "10", 'nov': "11", 'dec': "12"}; let year = str.match(/\d{4}$/); let month = str.match(/[A-Za-z]{3}/); let day = str.match(/^[1-9][0-9]?/); let mm, dd; if(day && month && year) { mm = months[month[0].toLocaleLowerCase()]; dd = day[0].padStart(2, '0'); console.log("Input: " + str + ". date: " + year[0] + "-" + mm + "-" + dd); } else if(year){ console.log("Input: " + str + ". date: " + year[0]); } else { return false; } }



0
投票
在 JS 中将月份名称转换为月份编号的最简单方法? (Jan = 01)

处理 MonthStr 到 MonthNumber 的对话 /** * change datestring format from dd-MMM-yyyy to yyyymmdd * */ function changeDateStringFormat(dd_mmm_yyy){ let year = dd_mmm_yyy.match(/\d{4}$/)[0]; console.log(year) let month = dd_mmm_yyy.match(/[A-Za-z]{3}/)[0]; console.log(month) let day = dd_mmm_yyy.match(/^\d{2}?/)[0]; console.log(day) let mm, dd; if(day && month && year) { mm = (new Date(Date.parse(month +" 1, 2012")).getMonth()+1).toString().padStart(2,'0'); dd = day.padStart(2, '0'); return year + mm + dd // return yyyymmdd }else{ return false; } }

© www.soinside.com 2019 - 2024. All rights reserved.