Вот Мой пример компоненты... Может кому-то будет полезным.
moment - подключен на страницу и доступен в области видимости.
props. date = передается строка в формате дата iso8601
обновление по умолчанию происходит раз в 30 секунд
.factory('TimeAgo', [function () {
return React.createClass({
propTypes: {
date: React.PropTypes.string,
refreshMillis: React.PropTypes.number
},
getDefaultProps: function () {
return {
date: moment().format(),
refreshMillis: 30000
}
},
componentWillMount: function () {
this.intervals = [];
},
setInterval: function (fn, ms) {
this.intervals.push(setInterval(fn, ms));
},
componentWillUnmount: function () {
this.intervals.forEach(clearInterval);
},
componentDidMount: function () {
var interval = this.props.refreshMillis;
this.setInterval(this.forceUpdate.bind(this), interval);
},
render: function () {
return (<span>{moment(this.props.date).fromNow()}</span>);
}
});
}])