jsmoment("20111031", "YYYYMMDD").fromNow(); // 4 years ago moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago moment().startOf('day').fromNow(); // 15 hours ago moment().endOf('day').fromNow(); // in 9 hours moment().startOf('hour'
其他使用方式
jsvar date1 = moment('2015-01-01') var date2 = moment('2000-01-01') date1.diff(date2) // 473385600000 date1.from(date2) // "in 15 years"
Moment ( 一款js时间框架 )
文档地址:http://momentjs.com/#relative-time
其他使用方式
Carbon
可能是 PHP 中时间处理最好的轮子了:http://carbon.nesbot.com/docs/#api-differencejs 版本,
我记得php里面有一个很好用的时间函数,可以直接加月份的,php操作时间最为简单的,普通地加3 month就好
======结果=====
这个就要对比php和java的算法了,php端是这样理解+n month的
但是我不知道java是不是这样算的,不过逻辑一分析明白了楼主应该理解js端怎么搞了吧。
例 date('Y-m-d', strtotime('2015-01-30 +1 month') === date('Y-m-d', strtotime('2015-01-30 +31 days') 是3月2号
你的代码改良一下,话说这样还不够简单吗?
这个有点扯蛋吧,如果今天是2月28日,java能计算出三个月以后的今天是5月30日,那5月28号怎么办?没有那个语言这么智能。
你想要这种结果(基于当前日期离下一个月1号的距离) ,php也是可以做到的。
echo date('Y-m-d',strtotime('last day of +3 month')-(strtotime('last day of this month')-strtotime('today')));
先计算这个月离下个月1号的距离,然后在当前月底加上3个月,减去这个距离。
显然这个是任何语言都能实现的。
问题没看明白,是要「今天」推迟3个月的时间吗?
如果只要是推迟3个月是几号: