Javascript 检查日期是今天、昨天还是过去7天
我知道这个帖子:Javascript 检查日期是今天、昨天还是过去7天,javascript,date,time,Javascript,Date,Time,我知道这个帖子: 但我只是在寻找一个JavaScript解决方案。如果可能的话,一个短的。我真的想不出一个100%可靠的方法 到目前为止,我是这样做的: function FormatDate(someDtUTC) { var someDt = new Date(someDtUTC.getTime() + someDtUTC.getTimezoneOffset() * 60 * 1000); var dtNow = new Date(); if (dtNow.getUTC
但我只是在寻找一个JavaScript解决方案。如果可能的话,一个短的。我真的想不出一个100%可靠的方法 到目前为止,我是这样做的:
function FormatDate(someDtUTC) {
var someDt = new Date(someDtUTC.getTime() + someDtUTC.getTimezoneOffset() * 60 * 1000);
var dtNow = new Date();
if (dtNow.getUTCFullYear() == someDt.getUTCFullYear() && dtNow.getUTCMonth() == someDt.getUTCMonth()) {
if (dtNow.getUTCDate() == someDt.getUTCDate())
var dateString = "Today, " + Ext.Date.format(someDt, 'G:i'); // Today, 15:32
else if (dtNow.getUTCDate() - 1 == someDt.getUTCDate())
var dateString = "Yesterday, " + Ext.Date.format(someDt, 'G:i'); //Yesterday, 13:26
else if (dtNow.getUTCDate() - someDt.getUTCDate() < 7)
var dateString = Ext.Date.format(someDt, 'l, G:i'); //Sunday, 14:03
} else
var dateString = Ext.Date.format(someDt, 'j.n.y\, G:i'); //7.8.15, 8:25
return dateString;
}
知道我如何告诉函数也处理这个问题吗?我不是在寻找一个带有外部库(包括ExtJS)的解决方案。我想用原始JavaScript解决这个问题。好的,我们可以通过以下步骤完成:
Date()
对象.setTime()
将两者的时间设置为特定时间.getTime()
,计算毫秒var a = new Date(2015, 8 - 1, 25); // Today
var b = new Date(2015, 8 - 1, 24); // Yesterday
var c = new Date(); // Now
c.setHours(0);
c.setMinutes(0);
c.setSeconds(0, 0);
if (a.getTime() == c.getTime())
return "Today";
else if (b.getTime() == c.getTime())
return "Yesterday";
else if ((new Date(2015, 8 - 1, 25 - 7)).getTime() < c.getTime())
return "Less than a week";
var a=新日期(2015年8月1日至25日);//今天
var b=新日期(2015年8月1日至24日);//昨天
var c=新日期();//现在
c、 设定时间(0);
c、 设置分钟(0);
c、 设置秒(0,0);
如果(a.getTime()==c.getTime())
返回“今天”;
else if(b.getTime()==c.getTime())
返回“昨天”;
else if((新日期(2015年8-1月25-7日)).getTime()
您可以使用两个日期之间的日期差,如果有负值,它将返回以天为单位的差,然后像
var date1 = new Date("12/15/2010");
var date2 = new Date("12/14/2010");
var timeDiff = date2.getTime() - date1.getTime();
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
if(diffDays == -1){ alert("Yesterday")}
如果要打印今天、昨天、星期几,如果是当前年份,则显示不带年份的日期,如果是上一年,则显示带年份的日期,下面的代码将帮助您
var fulldays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
function formatDate(someDateTimeStamp) {
var dt = new Date(someDateTimeStamp),
date = dt.getDate(),
month = months[dt.getMonth()],
timeDiff = someDateTimeStamp - Date.now(),
diffDays = new Date().getDate() - date,
diffMonths = new Date().getMonth() - dt.getMonth(),
diffYears = new Date().getFullYear() - dt.getFullYear();
if(diffYears === 0 && diffDays === 0 && diffMonths === 0){
return "Today";
}else if(diffYears === 0 && diffDays === 1) {
return "Yesterday";
}else if(diffYears === 0 && diffDays === -1) {
return "Tomorrow";
}else if(diffYears === 0 && (diffDays < -1 && diffDays > -7)) {
return fulldays[dt.getDay()];
}else if(diffYears >= 1){
return month + " " + date + ", " + new Date(someDateTimeStamp).getFullYear();
}else {
return month + " " + date;
}
}
formatDate(Date.now()) //"Today"
formatDate(Date.now() - 86400000) // "Yesterday"
formatDate(Date.now() - 172800000) // it will return the name of the week if it is beyond two days
var fulldays=[“周日”、“周一”、“周二”、“周三”、“周四”、“周五”、“周六”];
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
函数formatDate(someDateTimeStamp){
var dt=新日期(someDateTimeStamp),
日期=dt.getDate(),
月=月[dt.getMonth()],
timeDiff=someDateTimeStamp-Date.now(),
diffDays=新日期().getDate()-日期,
diffMonths=新日期().getMonth()-dt.getMonth(),
diffYears=新日期().getFullYear()-dt.getFullYear();
如果(diffYears==0&&diffDays==0&&diffMonths==0){
返回“今天”;
}else if(diffYears==0&&diffDays==1){
返回“昨天”;
}else if(diffYears===0&&diffDays===1){
返回“明天”;
}否则如果(diffYears===0&(diffDays<-1&&diffDays>-7)){
返回全天[dt.getDay()];
}否则如果(diffYears>=1){
返回月份+“”+日期+“”,“+新日期(someDateTimeStamp)。getFullYear();
}否则{
返回月份+“”+日期;
}
}
formatDate(Date.now())/“今天”
formatDate(Date.now()-86400000)/“昨天”
formatDate(Date.now()-17280000)//如果超过两天,则返回周的名称
export function isToday(date, now) {
const yearDate = date.getYear();
const monthDate = date.getMonth();
const dayDate = date.getDate();
const yearNow = now.getYear();
const monthNow = now.getMonth();
const dayNow = now.getDate();
if (yearDate === yearNow && monthDate === monthNow && dayDate ===
dayNow) {
return true
}
return false
}
您可以使用此函数并将日期作为参数传递,它将返回星期几,7天后将返回给定日期
函数findDay(日期){
让dateToCheck=新日期(日期);
const today=新日期();
const昨天=新日期(今天);
const onedaybeforeaday=新日期(昨天);
const twodaybeforeaday=新日期(昨天);
const三天前=新日期(昨天);
const fourdaybeforeaday=新日期(昨天);
const fivedaybeforeaday=新日期(昨天);
昨日.setDate(昨日.getDate()-1);
setDate(昨日.getDate()-1);
setDate(昨日.getDate()-2);
setDate(昨日.getDate()-3);
setDate(昨日.getDate()-4);
FiveDayBeforeDayed.setDate(昨日.getDate()-5);
让天数=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”,
];
如果(dateToCheck.toDateString()==Todate.toDateString()){
返回“今天”;
}else if(dateToCheck.toDateString()==昨天。toDateString()){
返回“昨天”;
}else if(dateToCheck.toDateString()==昨天的前一天。toDateString()){
返回天数[date.getDay()];
}else if(dateToCheck.toDateString()==TwoDayBeforEarty.toDateString()){
返回天数[date.getDay()];
}else if(dateToCheck.toDateString()==昨天三天前。toDateString()){
返回天数[date.getDay()];
}else if(dateToCheck.toDateString()==FourDayBeforEarty.toDateString()){
返回天数[date.getDay()];
}else if(dateToCheck.toDateString()==FiveDayBeforeDayeday.toDateString()){
返回天数[dateToCheck.getDay()];
}否则{
返回日期检查;
}
}
控制台日志(findDay(“07-10-2020”)代码>这对我很有用:
private\u isSameDay(日期1:Date,日期2:Date):布尔值{
返回(
date1.getUTCFullYear()==date2.getUTCFullYear()&&
date1.getMonth()==date2.getMonth()&&
date1.getDate()==date2.getDate()
);
}
private _getSeparatorBody(日期:date):字符串{
如果(此日期为SameDay(日期,新日期())){
返回“今天”;
}
const昨天=新日期();
昨日.setDate(昨日.getDate()-1);
如果(今天(日期,昨天)){
返回“昨天”;
}
返回日期。toISOString();
}
我建立在@Kapilrc源代码之上。语言变量应该对ToLocalString()有效。享受吧
函数创建人性化日期(
时间戳,
昨天,,
今天"课文",,
明天的课文,
语言
) {
var in_the_last_7days_date_options={weekday:'long'};
风险价值
export function isToday(date, now) {
const yearDate = date.getYear();
const monthDate = date.getMonth();
const dayDate = date.getDate();
const yearNow = now.getYear();
const monthNow = now.getMonth();
const dayNow = now.getDate();
if (yearDate === yearNow && monthDate === monthNow && dayDate ===
dayNow) {
return true
}
return false
}