试图用一个字母来描述moment().fromNow();
格式
示例:反对1 hour
、 1 day
、 1 week
。 希望有1h
, 1d
, 1w
。
使用像这样的单字母格式是我缺少的设置吗?
我认为 moment 现在没有这个功能。
可以参考http://momentjs.com/docs/#/displaying/fromnow/
其实你可以写你自己的函数来做到这一点,所以不确定moment是否真的需要支持它。
一个有趣的问题是,如果 moment 支持此功能,那么“几秒钟”的短标签是什么?
这将是一个“s”(例如:5s、35s)但是,有秒数。 处理项目中的少量房地产。
您可以通过语言环境进行设置:
moment.locale('en', {
relativeTime: {
future: 'in %s',
past: '%s ago',
s: 'seconds',
ss: '%ss',
m: 'a minute',
mm: '%dm',
h: 'an hour',
hh: '%dh',
d: 'a day',
dd: '%dd',
M: 'a month',
MM: '%dM',
y: 'a year',
yy: '%dY'
}
});
是的,区域设置是推荐的方法。
请参阅: http ://momentjs.com/docs/#/customization/relative -time/
我真的很想看到这个功能在核心代码库中实现。 这些天来,这些 instagram 风格的简短缩写非常普遍。
是的,我同意,针对一种语言进行自定义非常容易。 但是...如果您的应用程序需要支持多种语言环境,您突然需要在您支持的所有语言中进行自定义。 让 moment 社区的力量来承担这个负担真的很好。
不仅需要支持多个区域设置的应用程序,而且需要在不同部分显示短格式和长格式的应用程序也将从中受益。 现在,我必须使用我的解决方法。
+1 - 是什么让这一刻如此美好
+1(和凹凸),也很想看到这种情况发生
+1 - 现在正在寻找这个。
:+1:
👍
+1
+99999999999999
+1 请
+1
var timeSince = function(date) {
if (typeof date !== 'object') {
date = new Date(date);
}
var seconds = Math.floor((new Date() - date) / 1000);
var intervalType;
var interval = Math.floor(seconds / 31536000);
if (interval >= 1) {
intervalType = 'y';
} else {
interval = Math.floor(seconds / 2592000);
if (interval >= 1) {
intervalType = 'm';
} else {
interval = Math.floor(seconds / 86400);
if (interval >= 1) {
intervalType = 'd';
} else {
interval = Math.floor(seconds / 3600);
if (interval >= 1) {
intervalType = "h";
} else {
interval = Math.floor(seconds / 60);
if (interval >= 1) {
intervalType = "m";
} else {
interval = seconds;
intervalType = "now";
}
}
}
}
}
if (interval > 1 || interval === 0) {
intervalType += 's';
}
return interval + ' ' + intervalType;
};
来源: https :
+1 我们需要它
@dlindahl 非常感谢您提供
我为英语和德语做了这个:
moment.updateLocale('en', {
relativeTime: {
future : 'in %s',
past : '%s ago',
s : function (number, withoutSuffix) {
return withoutSuffix ? 'now' : 'a few seconds';
},
m : '1m',
mm : '%dm',
h : '1h',
hh : '%dh',
d : '1d',
dd : '%dd',
M : '1mth',
MM : '%dmth',
y : '1y',
yy : '%dy'
}
});
moment.updateLocale('de', {
relativeTime: {
future : 'in %s',
past : 'vor %s',
s : function (number, withoutSuffix) {
return withoutSuffix ? 'jetzt' : 'ein paar Sekunden';
},
m : '1min',
mm : '%dmin',
h : '1Std',
hh : '%dStd',
d : '1T',
dd : '%dT',
M : '1M',
MM : '%dM',
y : '1J',
yy : '%dJ'
}
});
+1 具有第二个功能; 我想要短+长两种形式。
我建议在英语中使用“mo”表示月份
我添加格式的解决方案,例如一天或一年或某种格式,我这样做:
let time=moment(re.date).fromNow(true);
let format=this.formatDate(time);
formatDate(date){
let strDate=date.split(" ");
let format="";
if(strDate[0]=="un"||strDate[0]=="a"){
strDate[0]="1";
format=strDate[0]+strDate[1][0];
return format
}
format=strDate[0]+strDate[1][0];
return format
}
返回例如 1d, 3y, 1m
问候
最有用的评论
您可以通过语言环境进行设置: