这可能是一个简单的解决方案,但我卡住了,基本上我需要将传入的yyyy-MM-dd转换为MM/dd/yyyy,如果传入日期为零,则输出也应为零.
传入日期可以是以下格式
2015-01-25 or nil
Run Code Online (Sandbox Code Playgroud)
输出日期应该是
01/25/2015 or nil
Run Code Online (Sandbox Code Playgroud)
我尝试从以下链接 转换日期yyyy/mm/dd到MM dd yyyy,但无法使其工作.
谢谢你的帮助.
忘记提及,在xml文件中,作为nil的传入日期具有以下格式
<Through_Date__c xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
Run Code Online (Sandbox Code Playgroud)
因此,如果我得到上面的格式,输出应该只是零
has*_*sin 10
日期toString函数对格式化有一些支持.看到这个.你还想处理我从这里拿到的未定义的案例.所以,对于你的情况你可以这样做:
function format(inputDate) {
var date = new Date(inputDate);
if (!isNaN(date.getTime())) {
// Months use 0 index.
return date.getMonth() + 1 + '/' + date.getDate() + '/' + date.getFullYear();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:解决评论
如果填充很重要,您只需将其添加到:
var d = date.getDate().toString();
(d[1]?d:"0"+d[0])
Run Code Online (Sandbox Code Playgroud)
我已经对小提琴进行了更新
小智 8
尝试使用RegEx:
var format = function(input) {
var pattern = /(\d{4})\-(\d{2})\-(\d{2})/;
if (!input || !input.match(pattern)) {
return null;
}
return input.replace(pattern, '$2/$3/$1');
};
console.log(format('2015-01-25'));
console.log(format('2000-12-01'));
console.log(format(''));
console.log(format(null));Run Code Online (Sandbox Code Playgroud)
使用String#split和Array#join,push&shift:
var format = function(input) {
var array = (input || '').toString().split(/\-/g);
array.push(array.shift());
return array.join('/') || null;
};
console.log(format('2015-01-25'));
console.log(format('2000-12-01'));
console.log(format(''));
console.log(format(null));Run Code Online (Sandbox Code Playgroud)