Момент js с реакцией js (ES6)

Я новичок в реагировании js. Я использую Reactjs (ES6) для моего нового проекта. Как использовать date.js для форматирования даты?

Я хочу отформатировать свой post.date в приведенном ниже цикле.

 render() {
    return (
        <div>
            { 
            this.props.data.map((post,key) => 
                <div key={key} className="post-detail">
                    <h1>{post.title}</h1>
                    <p>{post.date}</p>
                    <p dangerouslySetInnerHTML={{__html: post.content}}></p>
                    <hr />
                </div>
            )}
        </div>
    );
}

Ответы

Ответ 1

Поскольку вы используете webpack, вы должны иметь возможность просто import или require момента, а затем использовать его:

import moment from 'moment'

...
render() {
    return (
        <div>
            { 
            this.props.data.map((post,key) => 
                <div key={key} className="post-detail">
                    <h1>{post.title}</h1>
                    <p>{moment(post.date).format()}</p>
                    <p dangerouslySetInnerHTML={{__html: post.content}}></p>
                    <hr />
                </div>
            )}
        </div>
    );
}
...

Ответ 2

Я знаю, вопрос немного устарел, но, поскольку я здесь, похоже, люди все еще ищут решения.

Я предлагаю вам использовать ссылку на react-moment,

react-moment приходит с JSX тегами JSX которые уменьшают массу работы. Как и в вашем случае: -

import React  from 'react';
import Moment from 'react-moment';

exports default class MyComponent extends React.Component {
    render() {
        <Moment format="YYYY/MM/DD">{this.props.dateToFormat}</Moment>
    }
}

Ответ 3

Я использовал его как следует, и он работает отлично.

import React  from 'react';
import * as moment from 'moment'

exports default class MyComponent extends React.Component {
    render() {
            <div>
              {moment(dateToBeFormate).format('DD/MM/YYYY')}
            </div>            
    }
}

Ответ 4

Если другие ответы терпят неудачу, импортируйте их как

import moment from 'moment/moment.js'

может работать.

Ответ 5

запустить npm i moment react-moment --save

Вы можете использовать это в своем компоненте,

import Moment from 'react-moment';

const date = new Date();
<Moment format='MMMM Do YYYY, h:mm:ss a'>{date}</Moment>

даст вам вот что:
enter image description here

Ответ 6

в моем случае я хочу получить timeZone из нескольких стран, первый момент установки js

npm install moment --save  

затем установите момент-timezone.js

npm install moment-timezone --save

то я импортирую их в свой компонент, как это

import moment from 'moment';
import timezone from 'moment-timezone'

то, потому что я получаю час и минуты, а второй отдельно, мне это нравится

<Clock minutes={moment().tz('Australia/Sydney').minute()} hour={moment().tz('Australia/Sydney').hours()} second={moment().tz('Australia/Sydney').second()}/>

Ответ 7

момент импорта в ваш проект

 import moment from react-moment

Тогда используйте это так

return(
<Moment format="YYYY/MM/DD">{post.date}</Moment>
);

Ответ 8

 import moment from 'moment';
 .....

  render() {
   return (
    <div>
        { 
        this.props.data.map((post,key) => 
            <div key={key} className="post-detail">
                <h1>{post.title}</h1>
                <p>{moment(post.date).calendar()}</p>
                <p dangerouslySetInnerHTML={{__html: post.content}}></p>
                <hr />
            </div>
        )}
    </div>
   );
  }

Ответ 9

Я использую момент в своем проекте реагирования

import moment from 'moment'

state = {
    startDate: moment()
};
render() {
    const selectedDate = this.state.startDate.format("Do MMMM YYYY");
    return(
     <Fragment>
       {selectedDate)
     </Fragment>
   );
}