繁体   English   中英

从反应原生日期时间选择器获取人类可读的时间

[英]Get human readable time from react native datetime picker

import React from 'react';
import { Text, Button } from 'react-native';
import RNDateTimePicker from '@react-native-community/datetimepicker';

const Timer = ({}) => {
    const [picker, setPicker] = React.useState({time: null, date: null});
    const [mode, setMode] = React.useState(null);

    const setTimer = (event, time) => {
         if (mode == 'date') {
             if (time) setPicker(e => ({...e, date: time}));
             setMode('time');
         } else if (time && picker.date ) {
             setPicker(e => ({...e, time: time}));
             // do something here   
        }
    }

    const humanReadable = () => {/* return human readable date time format (2022/05:31 13:59:00) */}

    return (
        <>
             <Text>{ humanReadable() }</Text>
             <Button value="Get Date & Time" onPress={() => setMode("date")} />
             { 
                 mode && (
                     <RNDateTimePicker 
                           onChange={setTimer} 
                           mode={mode}
                           display={mode=='date' ? "calendar" : "clock"}
                           themeVariant="light" 
                           value={picker[mode] ?? new Date()} 
                     />
                 )
             }
        </>
    )
}

因为我正在使用 android。 所以我没有设置模式“日期时间”的选项。 这就是为什么我在这里添加了这个。 我的问题是如何获得人类可读的日期时间

也许看看这个库https://date-fns.org

这是我如何使用它:

//IMPORT FIRST 
import { format } from 'date-fns';
import { fr } from 'date-fns/locale';

//THEN IN YOUR JSX
           <Text>
           {format(dateValue, 'dd MMMM yyyy', { locale: fr })}
           </Text>

您可以使用moment.js

它是格式化日期的一个了不起的模块。 请看一看。

对于您的格式,您可以执行以下操作,

 import moment from 'moment'; moment().format("YYYY/MM/DD hh:mm:ss");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM