您好我正在尝试将json日期转换回正常的dd / mm / yy日期。
如何将Customer.DateOfBirth dd / mm / yy从json日期转换回正常日期?
这是我的代码?
// parse the date
var Birth = Customer.DateOfBirth;
if (Birth != '') {
// get the javascript date object
Birth = DateFromString(Birth, 'dd/MM/yyyy');
if (Birth == 'Invalid Date') {
Birth = null
}
else {
// get a json date
Birth = DateToString(Birth);
//REPLACE JSON DATE HERE WITH NORMAL DATE??
}
}
任何建议都会很棒。 感谢
答案 0 :(得分:0)
如果您可以将JSON表示更改为yyyy/mm/dd
,则可以使用
Birth = new Date(Birth);
如果必须使用当前格式,则必须进行一些手动解析
提取日/月/年部分并以预期格式创建字符串
var parts = Birth.split('/'),
day = parts[0],
month = parts[1],
year = parts[2],// you need to find a way to add the "19" or "20" at the beginning of this since the year must be full for the parser.
fixedDate = year + '/' + month + '/' + day;
Birth = new Date(fixedDate);
答案 1 :(得分:0)
您可以从Date
字符串创建mm/dd/yyyy
对象,因此,如果您的字符串已订购dd/mm/yyyy
,您将收到Invalid Date
错误,或者可能更糟糕的是,创建日期错误的日期对象(Januray 10th而不是10月1日)。
因此,在将字符串传递给dd
构造函数之前,您需要交换字符串的mm
和Date
部分:
var datestr = Customer.DateOfBirth.replace(/(\d+)\/(\d+)\/(\d+)/,"$2/$1/$3");
Birth = new Date( datestr );
您还可以按yyyy/mm/dd
顺序传递字符串:
var datestr = Customer.DateOfBirth.split('/').reverse().join('/');
Birth = new Date( datestr );