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
我想要做的是获取变量 '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