date - 如何正确获取日期和时间?

标签 date reactjs

我刚开始使用react并试图获得实际的日期和时间,但我不知道该怎么做 :(

有人可以帮我吗!

我尝试在初始状态下获取日期并每秒实现一次。当我运行它时,我得到一个白屏。

import React from 'react';
import './Menubar.css';
import Time from 'react-time';

const Menubar = React.createClass({
getInitialState() {
    return {
        now: new Date().now(),
    };
},

getRealTime: function() {
    this.setState(
        {
            now: new Date().now(),
        })
},

/**
 * Render the Menubar component
 * @return {Component} the App Component rendered
 */
render() {
    setInterval(this.getRealTime(), 1000);
    return (
        <div className="Menubar">
            <ul className="Menubar-menu">
                <div className="">
                    <li className="Menubar-name">login name</li>
                    <li className="Menubar-date"><Time value={this.state.now} format="DD/MM/YYYY" /></li>
                    <li className="Menubar-time"><Time value={this.state.now} format="HH:mm:ss" /></li>
                </div>
            </ul>
        </div>
    );
}
});

export default Menubar;

最佳答案

两件事情:

  • new Date().now()不是函数,new Date()返回当前日期和时间,因此无需添加。
  • 您尝试在渲染函数中设置状态(每次渲染都调用 getRealTime,这会导致重新渲染)。据我了解,您希望每秒更新一次时间。您可以在 componentDidMount 中进行设置.

  • 这是修复了这些问题的菜单栏组件。我还清除了组件卸载时的间隔:

    const Menubar = React.createClass({
      getInitialState() {
        return {
          now: new Date(),
        };
        this.interval = null;
      },
    
      componentDidMount: function() {
        const self = this;
        self.interval = setInterval(function() {
          self.setState({
            now: new Date(),
          });
        }, 1000);
      },
    
      componentWillUnmount: function() {
        clearInterval(this.interval);
      },
    
      render() {
        return (
          <div className="Menubar">
            <ul className="Menubar-menu">
              <div className="">
                <li className="Menubar-name">login name</li>
                <li className="Menubar-date"><Time value={this.state.now} format="DD/MM/YYYY" /></li>
                <li className="Menubar-time"><Time value={this.state.now} format="HH:mm:ss" /></li>
              </div>
            </ul>
          </div>
        );
      }
    });
    

    关于date - 如何正确获取日期和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40575501/

    相关文章:

    reactjs - process.env.NODE_ENV === "developement"即使在生产中

    PHP 字符串日期 + 1 天等于?

    sql - 比较具有大于和小于符号的 SQL 日期?

    javascript - 如何将日期字符串转换为 "dd/mm/yyyy"?

    PHP - 比较不同格式的日期

    javascript - 为什么我的 JSX 元素没有变小?

    reactjs - 如何在 React Native 中使用 Animated.View 制作切换按钮?

    reactjs - 如何使用 Jest 和 Enzyme 测试按钮的 onClick 属性

    java - 在java中查找天数差异

    javascript - 如何声明 useState() 初始值为 null,然后再给它一个对象值?