2014-01-06 2 views
3

에 날짜 변수에 초를 추가 :나는 코드를 다음과 Node.js를

var dbDate = '2013-11-15 12:51:18'; 
var seconds = 30; 

나는 같은 형식으로 초를 추가 한 후 날짜를 싶어. 좋아요 :

var resultDate = dbDate + seconds; //'2013-11-15 12:51:48' 

원하는 결과를 얻으려면?

답변

11
var dbDate = '2013-11-15 12:51:18'; 
var seconds = 30; 


var parsedDate = new Date(Date.parse(dbDate)) 
var newDate = new Date(parsedDate.getTime() + (1000 * seconds)) 


console.log(formatDate(newDate)) 


function formatDate(date){ 
    return ('{0}-{1}-{3} {4}:{5}:{6}').replace('{0}', date.getFullYear()).replace('{1}', date.getMonth() + 1).replace('{3}', date.getDay()).replace('{4}', date.getHours()).replace('{5}', date.getMinutes()).replace('{6}', date.getSeconds()) 
} 
+2

합의 대답. 다른 라이브러리를 추가 할 필요가 없습니다. –

2

이 경우 moment 라이브러리를 사용합니다. 그런 다음 다음과 같이 당신이 원하는 것을 얻을 수 :

var moment = require('moment'); 

var dateFormat = 'YYYY-MM-DD HH:mm:ss'; 

var dbDate = '2013-11-15 12:51:18'; 
var seconds = 30; 
var resultDate = moment(dbDate).add('seconds', seconds).format(dateFormat); 

이는 moment#add()#format()를 사용합니다.

1

또 다른 방법 :

var a; 
/// create our date from our nicely formatted Y-m-d H:i:s string 
a = new Date('2013-11-15 12:51:18'); 
/// add 30 seconds 
a = new Date(a.getTime() + (30 * 1000)); 
/// use toISOString, it's the closest to Y-m-d H:i:s 
a = a.toISOString(); 
/// modify ISO string to get Y-m-d H:i:s 
a = a.split('.')[0].replace('T', ' '); 
/// output! 
console.log(a); 
관련 문제