我尝试从我的数据库转换格式为YYYYMMDD的字符串,并将其放在输入框id="startingdate"
中。如何在另一个输入框id="startingdate1"
将其转换为YYYY-MM-DD?
<input type="" id="startingdate1" name="startingdate1" size="20" class="form-control col-md-7 col-xs-12" placeholder="YYYY-MM-DD"/>
<input id="startingdate" name="startingdate" type="hidden"/>
答案 0 :(得分:8)
s = s.replace(/(\d{4})(\d{2})(\d{2})/g, '$1-$2-$3');
这使用正则表达式来替换四个数字的序列,然后是两个数字的序列,接着是两个数字的序列,第一个加上-
加上第二个加上a -
,加上第三个。
答案 1 :(得分:2)
如果由于某种原因您不想使用正则表达式:
var startDate = document.getElementById('startingdate').value;
var displayDate = document.getElementById('startingdate1');
var year = startDate.substring(0, 4);
var month = startDate.substring(4, 6);
var day = startDate.substring(6, 8);
displayDate.value = year + '-' + month + '-' + day;
<input type="" id="startingdate1" name="startingdate1" size="20" class="form-control col-md-7 col-xs-12" placeholder="YYYY-MM-DD"/>
<input id="startingdate" name="startingdate" type="hidden" value="20160415"/>
答案 2 :(得分:2)
到目前为止,对我来说最可靠的方式是:
var a = "YYYYMMDD";
var b = [a.slice(0, 4), "-", a.slice(4, 6), "-", a.slice(6, 8)].join('');
console.log(b);
答案 3 :(得分:0)
更干净,更简单的版本:
function dateFormat(value, pattern) {
var i = 0,
date = value.toString();
return pattern.replace(/#/g, _ => date[i++]);
}
var displayDate = dateFormat('19700101', '####-##-##');
console.log(displayDate);