我已经做了类似的尝试,但是您已经根据当前代码的需要进行了修改:
我在React js中遇到了一个问题。我想比较/匹配两个日期start_end
或header_date
,并显示在渲染组件页面上。
我的代码示例:
{this.state.appointmentdata.map(data =>
{ const dateTime = moment(data.start_date.toString()); //start_date
const headerDate = moment(this.state.headerdatearray); //header_date
return headerDate.isSame(dateTime, 'day');
})
}
console.log数据(日期格式)
start_date: 2020-05-07 02:15:00 //format: "YYYY-MM-DD HH:mm:ss"
header_date array: ["11:57:16 AM", "11:27:16 AM"]
但是日期格式不同。如何获得相同格式的相同日期?
有人帮我吗?
可以有多个选项:
在终端运行此命令:
npm install moment --save
React js组件中的用法:] >>
import Moment from 'moment'; render(){ Moment.locale('en'); var dt = '2020-05-07T02:15:00'; return(<View> {Moment(dt).format('d MMM')} </View>) }
您可以在https://momentjs.com/docs/中查看一下moment.js官方文档
或者您可以使用此软件包
] >>npm install date-fns --save
使用代码:
import { format } from "date-fns";
var date = new Date("2020-05-07 02:15:00");
var formattedDate = format(date, "MMMM Do, YYYY H:mma");
console.log(formattedDate);
我已经做了类似的尝试,但是您已经根据当前代码的需要进行了修改:
let interval = 1000;
let date1 = new Date(data.date1); // date no. 1
let date2 = new Date();
let now = new Date(date2.getTime()); // put your date no. 2 here
let dueDate = new Date(date1.getTime() - date1.getTimezoneOffset() * 119876); // to match the timezone, set as per your location replacing 119876
var m1 = moment(dueDate,'MM/DD/YYYY HH:MM:SS');
var m2 = moment(now,'MM/DD/YYYY HH:MM:SS');
let timeDiff = m1.diff(m2); //time difference
let daysDiff = m1.diff(m2, 'days'); //days difference
let duration = moment.duration(timeDiff - interval, 'milliseconds');
data.days = daysDiff;
data.hours = duration.hours();
data.mins = duration.minutes();
data.secs = duration.seconds();
setInterval(function(){
duration = moment.duration(duration - interval, 'milliseconds');
data.days = daysDiff;
data.hours = duration.hours();
data.mins = duration.minutes();
data.secs = duration.seconds();
}, interval);
我已经做了类似的尝试,但是您已经根据当前代码的需要进行了修改: