如何用Javascript显示当天+ 30天?

时间:2016-10-29 13:29:20

标签: javascript html5 momentjs

我尝试插入今天+ 30天的日期。首先,我尝试使用以下代码显示当前日期:

<script>
var date = moment.unix(1414543560).locale('de').format("DD. MMMM YYYY");
document.write(date);
</script>

这显示正确的日期和月份,但遗憾的是年份是错误的(实际上是2014年)

如何显示今天+ 30天的正确日期?有什么想法吗?

https://jsfiddle.net/e3a7bgLu/3/

3 个答案:

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