如何使用本机反应将时间戳值转换为特定时间格式?

Posted

技术标签:

【中文标题】如何使用本机反应将时间戳值转换为特定时间格式?【英文标题】:How to convert timestamp value to specific time format using react native? 【发布时间】:2020-08-26 23:24:06 【问题描述】:

在我的场景中,我需要将 timestamp 值转换为 react native 中的特定时间格式。我厌倦了下面的代码,但无法实现准确的甲酸盐输出。如何实现?

 var dateTime = new Date(23456789 * 1000);
    this.setState(DateTime:('0' + dateTime.getUTCDate()).slice(-2) +
            '/' + ('0' + dateTime.getUTCMonth()).slice(-2) +
            '/' + dateTime.getUTCFullYear() +
            '' + ('0' + dateTime.getUTCHours()).slice(-2)
        );

期望的确切输出:Wed, 2/01/2000 - 1.10 AM

【问题讨论】:

【参考方案1】:

我试过这个 $new Date(23456789000).toLocaleDateString('en-GB'),得到 29/09/1970 的输出。 我使用从数据库中获取的日期值而不是时间戳,例如$new Date(myobject.myfield).toLocaleDateString('en-GB') 也有效,我在 React 中定义了与我的 db 对象匹配的接口。

【讨论】:

【参考方案2】:

您可以使用以下方式进行转换

 var timestemp = new Date( 23456789000 );
var formatted = timestemp.format("dd/mm/yyyy hh:MM:ss");

你可以像这样得到星期、日期、年份和月份

  var day = timestemp.getDay();
  var date = timestemp.getDate();
  var month = timestemp.getMonth() + 1;
  var year = timestemp.getFullYear();

更新

var t = new Date(23456789000);
var formatted = ('0' + t.getDate()).slice(-2) 
    + '/' + ('0' + t.getMonth()).slice(-2)
    + '/' + (t.getFullYear())
    + ' ' + ('0' + t.getHours()).slice(-2);

输出

29/08/1970 17

更新:

    var t = new Date(1589343013000);
var hours = t.getHours();
var minutes = t.getMinutes();
var newformat = t.getHours() >= 12 ? 'PM' : 'AM';  

// Find current hour in AM-PM Format 
hours = hours % 12;  

// To display "0" as "12" 
hours = hours ? hours : 12;  
minutes = minutes < 10 ? '0' + minutes : minutes; 
var formatted = 
    (t.toString().split(' ')[0]) 
    + ', ' +('0' + t.getDate()).slice(-2) 
    + '/' + ('0' + (t.getMonth() + 1) ).slice(-2)
    + '/' + (t.getFullYear())
    + ' - ' + ('0' + t.getHours()).slice(-2)
    + ':' + ('0' + t.getMinutes()).slice(-2)
    + ' ' + newformat;

输出:

Wed, 13/05/2020 - 09:40 AM

【讨论】:

我无法获得 Day 有没有像Moment这样的节点模块? @questanswer :检查我更新的答案。它工作正常。 @questanswer:您有机会查看我更新的答案吗? 我需要得到确切的格式,星期三,2/01/2000 - 1.10 AM

以上是关于如何使用本机反应将时间戳值转换为特定时间格式?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过本机反应将新字段数据更新到现有文档而不覆盖firebase-9中的现有数据

将时间戳值转换为 Kotlin 中的 12/24 小时时间值

使用本机反应将图像上传到 Firebase 存储

如何制作一个删除消息并根据反应将其发布到另一个频道的机器人

使用本机反应将其他元素推离屏幕的长文本

以秒为单位的转换时间戳值不会反转为 python 中的原始时间戳