Tentando usar uma letra para descrever o formato com moment().fromNow();
Exemplo: oposto a 1 hour
, 1 day
, 1 week
. Procurando ter 1h
, 1d
, 1w
.
É uma configuração que estou perdendo para usar o formato de uma única letra assim?
Não acho que o Momento tenha esse recurso agora.
Você pode consultar http://momentjs.com/docs/#/displaying/fromnow/
Na verdade, você pode escrever sua própria função para fazer isso, então não tenho certeza se o momento realmente precisa de suporte.
Uma questão interessante é se o momento oferece suporte a esse recurso, então qual é o nome curto para "alguns segundos"?
Seria um "s" (exemplo: 5s, 35s) mas, tem a quantidade de segundos. Lidar com pequena quantidade de imóveis em um projeto.
Você pode definir isso via local:
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'
}
});
Sim, a configuração de local é a abordagem recomendada.
Veja: http://momentjs.com/docs/#/customization/relative -time /
Eu realmente adoraria ver esse recurso sendo implementado na base de código principal. Essas abreviações curtas no estilo instagram são bastante onipresentes hoje em dia.
Sim, concordo, é muito fácil personalizar para um idioma. Mas ... se seu aplicativo precisa oferecer suporte a vários locais, de repente você precisa lidar com a personalização em todos os idiomas que você oferece suporte. Seria muito bom ter o poder da comunidade do momento assumindo esse fardo.
Não apenas os aplicativos que precisam oferecer suporte a vários locais, mas os aplicativos que precisam exibir o formato curto e longo em diferentes partes também se beneficiam disso. Agora, eu tenho que usar uma solução alternativa no meu.
+1 - esse tipo de coisa é o que torna o momento tão bom
+1 (& bump), também adoraria ver isso acontecendo
+1 - Procurando por isso agora.
: +1:
👍
+1
+99999999999999
+1 por favor
+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;
};
+1 nós precisamos disso
@dlindahl Muito obrigado pela solução incrível. Agora eu sei como lidar com mudanças locais para formatos de data
Fiz isso para inglês e alemão:
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 com 2ª função; Quero ambos os formulários curto + longo disponíveis.
Eu sugiro 'mo' para mês (es) em inglês
minha solução para adicionar um formato por exemplo um dia ou um ano ou algo assim, eu fiz assim:
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
}
retorne por exemplo 1d, 3y, 1m
Cumprimentos
Comentários muito úteis
Você pode definir isso via local: