1

我有一个包含日期的字符串,但我无法转换它。

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);

我想要它,所以它将March-09-2010转换为09-03-10 (DD-MM-YY)

有人知道我在做什么错吗?

4

7 回答 7

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);

演示:http: //jsfiddle.net/BjnBW/

于 2012-06-01T05:01:57.760 回答
1

尝试这个:

var dt=Date.parse(Yourstring);

formatDate('DD-MM-YY',dt);

请检查此Date.parse

于 2012-06-01T04:45:41.333 回答
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);
于 2012-06-01T04:56:20.400 回答
0

用于getDateFromFormat()在 javascript 中将字符串转换为日期。

检查此链接以获得更多帮助: http: //www.mattkruse.com/javascript/date/

于 2012-06-01T04:57:48.753 回答
0

您需要将“三月”转换为数字。一种方法是使用此 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'
于 2012-06-01T06:04:28.990 回答
0
var shortStartDate = 
  Globalize.format(Globalize.parseDate(startDate, 'MMMM-dd-yyyy'), 'dd-MM-yy');

使用一些库来进行转换,因为内置的 Date.parse() 是依赖于实现的。这取决于系统区域设置它接受的格式。

上面的代码使用了 Globalize.js,它可以处理大量的日期格式,包括不同语言的月份名称格式(默认为英文)。

于 2012-06-01T05:27:28.733 回答
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);
于 2012-06-01T04:50:11.160 回答