将日期从YYYYMMDD更改为YYYY-MM-DD Javascript

时间:2016-04-15 04:09:17

标签: javascript date

我尝试从我的数据库转换格式为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"/>

4 个答案:

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