我尝试插入今天+ 30天的日期。首先,我尝试使用以下代码显示当前日期:
<script>
var date = moment.unix(1414543560).locale('de').format("DD. MMMM YYYY");
document.write(date);
</script>
这显示正确的日期和月份,但遗憾的是年份是错误的(实际上是2014年)
如何显示今天+ 30天的正确日期?有什么想法吗?
答案 0 :(得分:4)
尝试
var date = moment().add(30, 'days').locale('de').format("DD. MMMM YYYY");
document.write(date);
这需要使用当前日期(moment()
),添加30天(add(30, 'days')
)并格式化日期。
在您阅读moment.js文档后,这一切都应该非常明显。
答案 1 :(得分:0)
function addDate(date,days){
var d=new Date(date);
d.setDate(d.getDate()+days);
var month=d.getMonth()+1;
var day = d.getDate();
if(month<10){
month = "0"+month;
}
if(day<10){
day = "0"+day;
}
var val = d.getFullYear()+"-"+month+"-"+day;
return val;
}
console.log(addDate("2014-10-10",30));
#output
2014-11-09
答案 2 :(得分:-1)
您可以将UNIX时间戳传递给JavaScript中的Date
构造函数,将日期设置为将来的30天,并将该日期传递给Moment。
// Construct date from UNIX timestamp
var date = new Date(1414543560 * 1000)
// Set date to 30 days in the future
date.setDate(date.getDate() + 30)
// Format date using Moment
var formatted = moment(date).locale('de').format('DD. MMMM YYYY')
请注意,如果您的支持目标允许,您甚至不再需要Moment,您可以使用浏览器附带的内置Internationalization API。
// Construct date from UNIX timestamp
var date = new Date(1414543560 * 1000)
// Set date to 30 days in the future
date.setDate(date.getDate() + 30)
// Format date using Intl API
var formatted = date.toLocaleDateString(['de-DE'], {
day: '2-digit',
month: 'long',
year: 'numeric'
})
document.write(formatted)