【问题标题】:React Native and date-fns. Problem with inserting current dateReact Native 和 date-fns。插入当前日期的问题
【发布时间】:2020-11-19 12:32:14
【问题描述】:

我想要做的是获取变量“todaysDate”来获取今天的日期并在Days 中产生差异并计算周数和天数。如果我手动将日期输入到“todaysDate”,我的计算就可以工作了。

我认为 ShowCurrentDate 的结果格式不适用于 date-fns。我尝试添加 moment.js 来获取今天的日期,但没有成功。

这是我想要开始工作的部分:

 ShowCurrentDate=()=>{

  var date = new Date().getDate();
  var month = new Date().getMonth() + 1;
  var year = new Date().getFullYear();
  return year + ',' + month + ',' + date;
 }

完整代码:

import React from 'react'
import { StyleSheet, Text, Alert } from 'react-native'
import LinearGradient from 'react-native-linear-gradient'
import { differenceInDays } from 'date-fns'

 ShowCurrentDate=()=>{
 
  var date = new Date().getDate();
  var month = new Date().getMonth() + 1;
  var year = new Date().getFullYear();
  return year + ',' + month + ',' + date;
 }

const startDate = new Date(2020, 6, 7)
const todaysDate = new Date(2020, 7, 29)
var resultDays = differenceInDays(todaysDate, startDate)
var resultDaysToWeeks = (resultDays/7)
var resultWeeks = Math.trunc(resultDaysToWeeks);
var resultDaysLeft = (resultDays-(resultWeeks*7))

class App extends React.Component {
  render() {
    return (
      <LinearGradient
        colors={['#FF00FF', '#00FFFF']}
        style={styles.container}
        start={{ x: 0, y: 0 }}
        end={{ x: 1, y: 1 }}
      >
        <Text style={styles.whiteText}>Pregnant</Text>
        <Text style={styles.number}>{resultWeeks}</Text>
        <Text style={styles.baseText}>weeks</Text>
        <Text style={styles.number}>{resultDaysLeft}</Text>
        <Text style={styles.baseText}>days</Text>
      </LinearGradient>
    )
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  number: {
    fontWeight: 'bold',
    fontSize: 180,
    },
  baseText: {
    fontWeight: 'bold',
    fontSize: 40,
      },
  whiteText: {
    fontWeight: 'bold',
    fontSize: 60,
    color: '#FFFFFF',
      },
})
export default App;

【问题讨论】:

    标签: javascript react-native date-fns


    【解决方案1】:

    diffInDays 函数接受日期类型对象,而 showCurrentDate 函数的返回值是字符串类型。 对于今天的日期,您可以简单地使用:

    var todaysdate = new Date()
    

    这是一个工作演示 https://codesandbox.io/live/o2zB0K

    【讨论】:

    • 嗨,谢谢。我得到它进行计算,但它给出的答案是错误的。就像在演示中它只给了 23 天......我需要以某种方式使用 date-fns 格式吗?谢谢
    • 格式没问题,你可能需要检查你的时区。您可以在沙盒控制台中检查今天的日期值。
    • 这是另一回事。放假31天,不是时区问题。看一看:codesandbox.io/s/ancient-bush-r1680?file=/src/App.js
    • 明白你的意思。所以基本上 JavaScript 从 0 到 11 计算月份。所以为了创建 2019 年 7 月 30 日的日期,您需要执行 new Date(2019,6,30)
    • 谢谢 ? 有效。我学到了 2 节课,使用 'new Date()' 我可以获得当前日期和时间,并且 javascripts 计数也为 0。
    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 2020-12-04
    • 2019-02-19
    • 1970-01-01
    • 2021-01-23
    • 2020-01-07
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多