使用 JS 和 Jquery 将“月份和年份”字符串转换为日期对象
Convert 'Month and Year' string into Date object using JS and Jquery
我有两个数组(我从一个表中用jQuery制作了它们),第一个是结束日期,第二个是开始日期。 元素是字符串:
["June, 2012", "June, 2012", "August, 2011", "April, 2013", "August, 2010", "August, 2010", "April, 2013", "April, 2012", "April, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012", "June, 2012"]
["November, 2011", "April, 2012", "May, 2008", "May, 2007", "November, 2007", "May, 2007", "June, 2006", "June, 2007", "April, 2006", "January, 2008", "April, 2001", "April, 2001", "April, 2006", "April, 1998", "April, 1998", "September, 2008", "August, 2010", "August, 2009", "August, 2010", "August, 2009", "August, 2010", "August, 2010", "August, 2010", "January, 1997", "January, 1997", "January, 2010", "January, 2007", "April, 2010"]
我正在尝试获取每组索引之间的经过时间。 我假设我必须将这些字符串转换为日期对象date()
然后进行计算以获取经过的时间,然后使用如下所示的内容将其截断为月份和年份:
function convertDate(passedDate) {
var m = new Array(7);
var y = passedDate.getFullYear();
m[0] = "January";
m[1] = "February";
m[2] = "March";
m[3] = "April";
m[4] = "May";
m[5] = "June";
m[6] = "July";
m[7] = "August";
m[8] = "September";
m[9] = "October";
m[10] = "November";
m[11] = "December";
return m[passedDate.getMonth()] + "months and " + y + " years;
};
这是小提琴,这是我的问题:
无论如何可以在不将其更改为日期对象的情况下执行此操作,因为我对日期或时间不感兴趣?
除了尝试将经过的日期数学公式转换为日期,然后转换回字符串之外,您是否建议使用另一种方法?
如何识别当前元素的姐妹元素,以便避免使用双嵌套循环?(也会在不同的问题中问这个问题,因为它涉及不同的主题)
感谢您对我的帮助,因为我正在尝试制作具有可选属性的交互式简历,并且我包含了一些数据,因此我不必向冷呼叫的招聘人员回答所有基本信息。
真的,您所需要的只是一张从月份名称到数字的地图。 你可以像这样构建一个:
var monthNames = [ "January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December" ]
var monthNumber = {}
for (var i=0; i<monthNames.length; ++i) {
monthNumber[monthNames[i]] = i;
}
现在你有,例如,monthNumber['October']
== 9。 然后,您可以将其中一个字符串转换为月份数字和年份。 如果您然后将其转换为绝对月份数字(年 * 12 + 月),您只需减去即可获得经过的月份。
function stringToMonthNumber(monthYear) {
var parts = monthYear.split(/'s*,'s*/)
var month = monthNumber[parts[0]]
var year = parts[1] - 1
return year * 12 + month
}
function elapsedMonths(startString, endString) {
return stringToMonthNumber(endString) - stringToMonthNumber(startString)
}
然后这个:
elapsedMonths("November, 2011", "June, 2012")
返回 7。
- 如何在JavaScript中将字符串转换为函数引用
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 将字符串转换为格式化日期
- IE在将字符串转换为日期时从日期中删除4小时
- node.js将字符串转换为要上传到Web服务器的文件
- 将字符串转换为JS对象
- 在js中将字符串转换为十六进制
- 试图了解如何使用parseFloat将字符串转换为数字
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 将字符串转换为GWT中的JSON对象(JSNI)
- 如何使用Razor显示模板将字符串转换为html字符串
- 将字符串转换为数组编号Javascript
- js字符串转换为具有两个值的对象
- 转换<a>使用jQuery将文本字符串转换为dom元素
- Jquery-将字符串转换为reg exp对象
- 使用JavaScript将客户端日期/时间字符串转换为JSON日期/时间串
- 将JavaScript字符串转换为整数
- moment js,将EST字符串转换为UTC
- 如何在javascript中将字符串转换为有效日期
- 通过JQuery将字符串转换为JSON