我有一个字符串,其中有一个日期,我无法转换它。
var startDate = "March-09-2010";
var convertedStartDate = new Date(startDate);
var month = convertedStartDate.getMonth() + 1
var day = convertedStartDate.getDay();
var year = convertedStartDate.getFullYear();
var shortStartDate = month + "-" + day + "-" + year;
alert(shortStartDate);
我希望如此将 2010年3月9日转换为 09-03-10 (DD-MM-YY)
任何人都知道我做错了什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
var startDate = "March-09-2010";
var convertedStartDate = new Date(startDate.replace(/-/g, "/")); // replace hyphen with slash
var month = convertedStartDate.getMonth() + 1
var date = convertedStartDate.getDate();
var year = convertedStartDate.getFullYear();
var shortStartDate = date + "-" + month + "-" + year;
alert(shortStartDate);
答案 2 :(得分:0)
您的日期字符串格式不正确。有关正确的格式,请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
试试这个或jsfiddle
var startDate = "March-09-2010";
var tmp = startDate.split('-');
tmp.splice(1, 0, ',');
var convertedStartDate = new Date(tmp.join(' '));
var month = convertedStartDate.getMonth() + 1
var day = convertedStartDate.getDate();
var year = convertedStartDate.getFullYear();
var shortStartDate = ('0' + day).slice(-2) + "-" + ('0' + month).slice(-2) + "-" + year;
alert(shortStartDate);
答案 3 :(得分:0)
检查你的语法稍微修改了你的代码,然后根据它修改它---
var startDate = "March/09/2010";
var convertedStartDate = new Date(startDate);
var month = convertedStartDate.getMonth() + 1
var day = convertedStartDate.getDate();
var year = convertedStartDate.getFullYear();
var shortStartDate = day+ "-" + month+ "-" + year;
alert(shortStartDate);
答案 4 :(得分:0)
使用getDateFromFormat()
将字符串转换为javascript中的日期。
点击此链接获取更多帮助:http://www.mattkruse.com/javascript/date/
答案 5 :(得分:0)
var shortStartDate =
Globalize.format(Globalize.parseDate(startDate, 'MMMM-dd-yyyy'), 'dd-MM-yy');
使用某些库进行转换,因为内置的Date.parse()与实现有关。它取决于系统区域设置它接受的格式。
上面的代码使用Globalize.js,它可以处理大量的日期格式,包括具有不同语言的月份名称的格式(默认为英语)。
答案 6 :(得分:0)
您需要将'March'转换为数字。一种方法是使用此Array扩展,以便能够从月份名称中检索月份编号:
Array.prototype.enum = function(){
var obj = {};
for (var i=0; i<this.length; (i+=1)) {
obj[this[i]] = i;
}
this.enum = obj;
return this;
};
现在,创建一个包含月份名称的数组
var months = ('January,February,March,April,May,June,July,'+
'August,September,October,November,December').split(',')
.enum();
现在你重写你的日期:
var startDate = "March-09-2010".split(/\-/),
month = months.enum[startDate[0]]+1;
startDate = [startDate[1],
month < 10 ? '0'+month : month,
startDate[2]].join('-');
//=> startDate now is: '09-03-2010'