首页 > 解决方案 > 如何以正确的顺序显示日期?(反应原生)

问题描述

在我的移动应用程序中,我分享了我的 Youtube 频道列表。在我的 Youtube 视频下,日期未以正确的格式显示(出现的格式如下:月/日/年)。

如何以法语格式(日/月/年)显示?

const VideoListItem = ({ data, onVideoPress }) => {
  return (
    <TouchableOpacity onPress={() => onVideoPress(data)}>
      <View style={styles.container}>
        <CachedImage
          uri={data.artworkUrlHigh.url}
          style={styles.flexMax}
          imageStyle={styles.cover}
        />
        <View style={styles.textContainer}>
          <View style={styles.flexMax}>
            <Text style={styles.text} numberOfLines={2} ellipsizeMode="tail">
              {decode(data.title)}
            </Text>
           
          </View>
          <Text style={styles.textAlt}>
            Publié le{' '}
            {new Date(parseInt(data.publishedAt, 10)).toLocaleDateString('fr-FR', { timezone: 'UTC' })}
          </Text>
        </View>
      </View>
    </TouchableOpacity>
  );
};

提前致谢。

标签: javascriptdatabasereact-nativeyoutubetimezone

解决方案


哪个浏览器?

Chrome 今天用法语显示 11/07/2019

var data = {}
data.publishedAt = "1562848984568";
console.log(
  new Date(+data.publishedAt).toLocaleDateString('fr-FR', { timezone: 'UTC' })
)
// US for comparison
console.log(
  new Date(+data.publishedAt).toLocaleDateString('en-US', { timezone: 'UTC' })
)

移动设备上的选项和语言环境未得到广泛支持

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Browser_compatibility

在此处输入图像描述


Intl.DateTimeFormat可能会更好

var data = {}
data.publishedAt = "1562848984568";
var date = new Intl.DateTimeFormat('fr-FR').format(+data.publishedAt)
console.log(date)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat#Browser_compatibility

在此处输入图像描述

确定版本:

var pad = function(num) { return ("0"+num).slice(-2) }
var format = function(dateString) { 
  var date = new Date(+dateString);
  return pad(date.getDate())+"/"+pad(date.getMonth()+1)+"/"+date.getFullYear();
}

// test:
var data = {}
data.publishedAt = "1562848984568";
console.log(format(data.publishedAt))
// end test

/* 
used like this:

<Text style={styles.textAlt}>Publié le {format(data.publishedAt)}</Text>

*/


推荐阅读