React Native 和 date-fns。插入当前日期的问题

React Native and date-fns. Problem with inserting current date

我想要做的是获取变量 'todaysDate' 以获得今天的日期并计算周数和天数。如果我手动输入日期到 '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;

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

var todaysdate = new Date()

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