render(){
let events = this.props.data.map(function(eventsData, index){
return (
<View style={Cstyles.postContainerEvent} key={index}>
<View style={Cstyles.subPostContainer}>
<Text style={Cstyles.postTitleEvent}>{eventsData.title}</Text>
<Text style={Cstyles.objDescription}>{eventsData.description}</Text>
<View style={Cstyles.postSubEvent}>
<Text style={Cstyles.postSubCatEvent}>{eventsData.venue}</Text>
<Text style={Cstyles.postSubCatEvent}>{eventsData.time}</Text>
</View>
<View style={Cstyles.postSubEvent}>
<Text style={Cstyles.postSubCatEventAddress}>{eventsData.address}</Text>
<Text style={Cstyles.postSubCatEvent}>{eventsData.price}</Text>
<Text style={Cstyles.postSubCatEventDate}>{eventsData.month + " " + eventsData.day}</Text>
</View>
</View>
</View>
)
});
我在父组件上使用Fetch API获取此数据。收到的一个对象(eventsData.month)是一个1-12的字符串,具体取决于月份:我在12月收到“12”。我想把“12”变成“十二月”,等等其他几个月。
答案 0 :(得分:1)
当我failed to find a javascript native function to convert a number into a date时,我很惊讶,因此,我不想将框架带入其中,我使用了这样的东西:
显然,如果你想要三个字母的版本,这对除英语以外的任何东西都有用。但它并没有引入数千行框架:P
var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] ;
for( var i = 1; i <= 12; i++){
document.body.innerHTML += "<p>" + months[i-1] +"</p>"
}
答案 1 :(得分:1)
我喜欢Dan Farrell的回答。我注意到你也可以使用一个对象来提高可读性。
var monthMap = {
"1": "Jan",
"2": "Feb",
"3": "Mar",
"4": "Apr",
"5": "May",
"6": "Jun",
"7": "Jul",
"8": "Aug",
"9": "Sep",
"10": "Oct",
"11": "Nov",
"12": "Dec",
}
document.body.innerHTML += monthMap["12"];
&#13;
我还要提到的是,如果您愿意添加外部库,moment.js
非常好,值得研究。它不仅仅是日期格式化。
答案 2 :(得分:0)
然后这样做
<Text style={Cstyles.postSubCatEventDate}>{moment(eventsData.month, "M").format("MMMM") + " " + eventsData.day}</Text>
这会将两位数字变成一个完整的月份字符串。所以&#39; 06&#39;会变成“六月”。