μ λ νλ‘μ νΈλ₯Ό μ§ν μ€μ΄λ©° momentjsλ λ μ§ μ‘°μμ μ λ§ μ μ©νλ―λ‘ κ°μ¬ν©λλ€.
μλ₯Ό λ€μ΄, μ°λ¦¬λ λΉνκΈ° νλ₯Όμν μΌμ’
μ μμ μ λ§λ€κ³ μμ΅λλ€. duration.humanize()
ν¨μλ μ°λ¦¬μκ² λΆμ ν ν λ°©λ²μ
λλ€.
μλ₯Ό λ€μ΄ 12:00μ μΆλ°νκ³ 13:30μ μ°©λ₯ ν λ. 2 μκ°μΌλ‘ λ°μ¬λ¦Όλ©λλ€. κ·Έλ¬λ μ°λ¦¬λ momentjsμμ λλ½ λ μΌμ’ μ μΈλΆμ±μ΄ νμν©λλ€.
humanizeλ κ°μ₯ λμ κ°μμ μμνμ¬ 1 μμ€μ μ λ°λλ‘ κΈ°λ³Έκ°μ μ€μ ν μ μμ΅λλ€.
// 1:30
duration.humanize()
2 hour
duration.humanize({precision: 2})
1 hour 30 minutes
duration.humanize({precision: 3})
1 hour 30 minutes 0 seconds
λ λ²μ§Έ λ¬Έμ λ μ«μ 0μ΄μμ λμ λλ€. Momentjsλμ΄λ₯Ό "λͺ μ΄"λ‘ λ²μν©λλ€. λλ κ·Έκ²μ΄ μ΄λ»κ² λ¬μ± λ μ μλμ§ μ λͺ¨λ₯΄κ² μ§λ§ μ΄λ€ μ’ λ₯μ μμμ κ°λ κ²μ΄ λ©μ§ κ²μ λλ€.
// 3 days and 0 minutes
duration.format('D [and] M')
> 3 days and 0 minutes
duration.format('H [and] M')
> 72 hours and 0 minutes
duration.format('H [and] m')
> 72 hours and few minutes
μ΄λ κ²νλ©΄ κ°μ₯ λμ κ°μ΄ νμμ 맀ν λ μ μμ΅λλ€. λ°λΌμ 1 λ μ΄ μμ΄λ νμμ μ¬λ°λ₯΄κ² νμνλ λ°©λ²μ μλ €μ€λλ€. λ§€μ° μ μ©νκ³ momentjsκ° μ΄λ―Έ νμ§νλ₯Ό μ²λ¦¬νλ κ²μ΄ λμλ€κ³ λλ λ μμΌλ‘ν΄μΌνκΈ° λλ¬Έμ 컀λ°μ λ°μ΄ λΆμ¬μ κΈ°μ©λλ€.
μ΄ μμ²μ +1
@llacroix , μ΄κ²μ λν ν μμ²μ μμ±νλ λ° κ΄μ¬μ΄ μμ΅λκΉ?
λ€, μλ§ μκ°μ λ΄λλ‘ λ Έλ ₯νκ² μ΅λλ€. momentjsμ μΆκ°νλ©΄ μ₯κΈ°μ μΌλ‘ μ μ λ€λ₯Έ μ¬λλ€μ μκ°μ μ μ½ ν μ μμ΅λλ€. νμ¬ μ΄κ²μ λ΄κ° λͺ¨λ κ³³μμ μΌμ’ μ μλ§μ λ§λ€λλ‘ κ°μνλ©° μλ²½νμ§ μμ΅λλ€. momentjsλ₯Ό μμ νλ κ²μ΄ λ μ μ ν΄ λ³΄μ λλ€.
κ·Έλ¬λ μ°λ¦¬λ μ΄λ€ μ’ λ₯μ νμμ μνν΄μΌνλμ§μ λν΄ μ’ λ λ Όμν΄μΌ ν κ²μ λλ€. μλ₯Ό λ€μ΄, 0 κ°μ΄ νμλκ±°λ νμλμ§ μμμΌν©λλ€.
4 hours 20 seconds
λλ 0 days 4 hours 0 minutes 20 seconds
κ°μμ 365 μΌ, 30 μΌμ΄λ©λλ€.
κ·Έλ¦¬κ³ λ , μ, μ£Ό, μΌ, λΆ, μ΄ λ° λ°λ¦¬ μ΄ μ΄μΈμ λ€λ₯Έ νμμ΄ μμ΄μΌν©λλ€.
μ΄κ²μ λν +1
κ·Έλ¬λ μ, μμ μ§μ μ μ¬κΈ°μ ν΅μ¬ λ¬Έμ μ
λλ€. μΈκ°νμ νμμ νμ€ν λ λ€ νμν©λλ€.
μΈκ°ν νλμμν λͺ κ°μ§ μ μ :
// 1:30
duration.humanize ();
1 μκ° 30 λΆ
duration.humanize ({round : "μκ°"})
2 μκ°
duration.humanize ({round : "minutes"})
1 μκ° 30 λΆ
duration.humanize ({round : "seconds"})
1 μκ° 30 λΆ 0 μ΄
roundκ° λͺ μ μ μΌλ‘ μ μλμ΄ μμ§ μλ€λ©΄ κ°μ΄ 0μ΄κ³ κ·Έλ³΄λ€ μμ λ¨μλ λͺ¨λ μλ΅ν΄μΌνλ€κ³ μκ°ν©λλ€.
// 1 μκ° 0 λΆ 45 μ΄
duration.humanize ()-> 1 μκ°
// 1 μκ° 1 λΆ 0 μ΄
duration.humanize ()-> 1 μκ° 1 λΆ
// 1 μκ° 1 λΆ 10 μ΄
duration.humanize ()-> 1 μκ° 1 λΆ 10 μ΄
λν λ§μ§λ§ μ‘°μΈμλ "and"κ΅¬λΆ κΈ°νΈλ₯Ό μ¬μ©ν΄μΌνλ©° μμ κ³΅λ°±μ΄ μμ΄μΌν©λλ€.
2 κ°μ 6 μΌ 7 μκ° 36 λΆ
μ΄κ²μ΄ ν¨μκ° κΈ°λ³Έμ μΌλ‘ μλν΄μΌνλ€κ³ μμνλ λ°©λ²μ λλ€.
λ€μμ μλͺ λ° κ΅¬νμ λν μ μ μμ λλ€.
var duration = moment.duration({
hours : 1,
minutes : 0,
seconds : 20,
milliseconds : 0
});
duration.countdown(); // 1 hour 0 minutes 20 seconds
duration.countdown(1); // 1 hour
duration.countdown(2); // 1 hour and 0 minutes
duration.countdown(3); // 1 hour 0 minutes and 20 seconds
@sylvainpolletvillardκ° μ μνλ―μ΄, 0 κ°μ μλΌ λ΄κΈ°μν λ§€κ° λ³μλ₯Ό μΆκ° ν μ μμ΅λλ€. μλ§λ μ΄λ° κ²μ λλ€.
duration.countdown(3); // 1 hour 0 minutes and 1 second
duration.countdown(3, true); // 1 hour
moment.fromNow(Boolean)
μ κ°μ μ λ―Έμ¬μ λν λ§€κ° λ³μλ₯Ό μΆκ° ν μλ μμ΅λλ€.
duration.countdown(3); // 1 hour 0 minutes and 1 second ago
duration.countdown(3, null, true); // 1 hour ago
μ°λ¦¬λ μ΄κ²μ μμ΄λ‘ μ½κ² λ§λ€ μ μμ§λ§ λͺ¨λ λ€λ₯Έ μΈμ΄λ‘μ΄ λͺ¨λ λ¬Έμμ΄μ μ¬λ°λ₯΄κ² μ°κ²°νλ κ²μ λ§€μ° κΉλ€λ‘μΈ κ²μ λλ€.
μΈμ΄κ° λ¬Έμμ΄μ μ°κ²°νκΈ° μν΄ μ½λ°±μ λ§λ€μ΄μΌ ν κ²μ λλ€. μ΄ κ·μΉμ μλ§λ λ§€μ° λ³΅μ‘ ν κ²μ λλ€ ( νκ°λ¦¬μ΄ , λΉμ μλ³΄κ³ μμ΅λλ€).
μ΄ κ°μ μ λ¬νλ κ°μ₯ μ’μ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
var keys = [ "h", "mm", "s"],
values = [ 1, 0, 20],
strings = ["1 hour", "0 minutes", "20 seconds"];
lang.countdown(keys, values, strings, addSuffix);
κ·Έλ¬λ©΄ μμ΄ λ²μμ λ€μκ³Ό κ°μ΅λλ€.
lang.countdown = function (keys, values, strings, addSuffix) {
var i, output = "";
for (i = 0; i < strings.length; i++) {
if (i === strings.length - 1 && strings.length > 1) {
output += "and ";
}
output += strings[i] + " ";
}
if (addSuffix) {
output += "ago";
}
}
λμ²΄λ‘ μ΄κ²μ 33 κ°μ λ²μ κΈ°λ₯κ³Ό μ½μ΄μ λ λ§μ μ½λλ₯Ό νμλ‘νλ μμ²λκ² λ³΅μ‘ν μΆκ°κ°λ©λλ€. λν μΌλ§λ μμ£Ό μ¬μ© λ μ§ λͺ¨λ₯΄κ² κΈ° λλ¬Έμ λ€λ₯Έ λͺ¨λ μ¬λλ€μκ² κ·Έ λͺ¨λ λΆνμμ μΆκ°νκ³ μμ΅λλ€.
μλ§λ μ΄κ²μ΄ νλ¬κ·ΈμΈμΌλ‘ μ΄λνλ κ²μ΄ κ°μ₯ μ’μκΉμ?
κΈ°κ° νμ μ§μ μ λν ν λ‘ μΌλ‘ λμκ°μ μ΄μ κ°μ κ²μ΄ κ°λ₯νλ©΄ μ’μ κ²μ΄λΌκ³ μκ°ν©λλ€.
moment.duration(9483000).format('d h m s') // 1 day 2 hours 20 minutes 30 seconds
moment.duration(9483000).format('h m s') // 26 hours 20 minutes 30 seconds
//etc...
0 κ°μ΄ νμλμλμ§ μ¬λΆλ₯Ό κ²°μ νκΈ° μν΄ format λ©μλμ λΆμΈ λ§€κ° λ³μλ₯Ό μ 곡 ν μ μμ΅λκΉ?
CLDRμλ μ¬λ¬ μΈμ΄μ μ¬μ©ν μμλ λͺ©λ‘ νμ μ§μ 체κ³μ λ°μ΄ν°κ° μμ΅λλ€.νμ§λ§ λ§μ μΈμ΄μλ μ¬μ ν μ¬μ©μ μ§μ μ½λ°±μ΄ νμν©λλ€.
http://cldr.unicode.org/development/development-process/design-proposals/list-formatting
λλ ν¬λ§· κΈ°λ₯μ΄ μμλ€. μ¬λ¬ μΈμ΄μ λ²μμ ꡬννκΈ° λλ¬Έμ μλΉν μ΄λ €μΈ μ μμ΅λλ€. νμμ μ¬μ©νλ κ²μ ꡬννκΈ° λ§€μ° μ½μ΅λλ€.
λΉμ μ΄ μνλ€κ³ λ§νμ
moment.duration(9483000).format('d h m s') // 1 day 2 hours 20 minutes and 30 seconds
// English => 'd h m [and] s' 1 day 2 hours 20 minutes and 30 seconds
// French => 'd, h, m [et] s' 1 jour, 2 heures, 20 minutes et 30 secondes
// Russian => 'd h m [ΠΈ] s' 1 Π΄Π΅Π½Ρ 2 ΡΠ°ΡΠ° 30 ΠΌΠΈΠ½ΡΡ ΠΈ 30 ΡΠ΅ΠΊΡΠ½Π΄
νΉλ³ν μ½λ°±μ νμνμ§ μμ§λ§ νΉλ³ν νμ λ¬Έμμ΄ λ§ μμΌλ©΄λ©λλ€.
μ μ λ duration.countdown()
λ° duration.countdown(1)
λ©μλλ μ νν λ΄κ° μ°Ύκ³ μλ κ²μ
λλ€ (μ¦, μ§κΈ λ΄ μ½λμμ μνμ€μΈ μμ
).
ννΈ, Duration νλ‘ν νμ μ νμ₯νλ λ°©λ²μ΄ μμ΅λκΉ?
κΈ°κ° νλ‘ν νμ
μ ν΅ν΄ λ
ΈμΆλλ moment.duration.fn
μ μ¬ moment.fn
.
μλ μ # 143 / # 192μμ λΉμ·ν μμ μ ν΄μμ΅λλ€. Timμ νλ¬κ·ΈμΈμ μ μνμ§λ§ μκ°μ΄ κ±Έλ¦¬μ§ μμμ΅λλ€.
μμ μ μ¬λΆν νλ €κ³ νμ΅λλ€. λλ κΈ°κ° κ°μ²΄ λ±κ³Ό κ°μ μλ‘μ΄ κ°λ μΌλ‘ μ λ°μ΄νΈν΄μΌνλ€. λλμ΄ ν°μΌκ³Ό λ€λ₯Έ κ²λ€μ΄μλ€. μ΄μ λλ κ·Έκ²μ΄ μ¬μ ν νμνμ§, κ·Έλ λ€λ©΄ μ΄λ»κ² ꡬνν΄μΌν μ§ κ³ λ―Όνκ³ μμ΅λλ€.
λλ μ λ°μ λ°κ³ μΆμ§ μμμ λ΄κ° λμΈ μ μλμ§ μκ²λμμ΅λλ€. μ§κΈ λκ° κ·Έ λ¬Έμ λ₯Ό λ€λ£¨κ³ μμ΅λκΉ?
λ΄ μ½λλ λ€μκ³Ό κ°μ΄ μ°μ λ¨μ λ° λΉ μ°μ λ¨μλ‘ νμμ μ§μ ν μ μμ΅λλ€.
test.equal(moment([2012, 0, 1]).diff([2011, 0, 1], 'years\\y'), "1y");
test.equal(moment([2012, 0, 1]).diff([2011, 0, 1], 'months[m]'), "12m");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'months [months] days [days]'), "50 months 19 days");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years \\y months \\M days \\d'), "4 y 2 M 19 d");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years[y] days[d]'), "4y 80d");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years [years] weeks [weeks]'), "4 years 11 weeks");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years\\y weeks\\w [and] days [days]'), "4y 11w and 3 days");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'days\\d'), "1541d");
'days years'
μ κ°μ΄ μμκ° λ§μ§ μλ λ¨μλ μ²λ¦¬νμ§ μμμ΅λλ€. λν 0 κ° μ κ±°λ₯Ό μ²λ¦¬νμ§ μμμ΅λλ€.
μ λ§ λ©μ Έ 보μ λλ€. μ νν μ κ° λ°λ¬λ κ²μ λλ€!
μ΄κ²μ νμ€ν λͺ¨λ μ¬λμκ² νμν κΈ°λ₯μ λλ€.
μ΄κ² νμν΄!
μ¬λ¬λΆ μ€ μΌλΆμκ²λ μμ λ°©νΈμΌλ‘ λͺ¨λ©νΈμμ μ§μ countdown.js λ₯Ό μ¬μ©ν μμλ κ°λ¨ν νλ¬κ·ΈμΈμ λ§λ€μμ΅λλ€.
moment("1982-5-25").countdown().toString(); // => '30 years, 10 months, 14 days, 2 hours, 23 minutes, and 50 seconds'
μ¬μ©ν λ¨μ λ° μ λ°λμ κ°μ μ λ¬νλ λͺ¨λ μΉ΄μ΄νΈ λ€μ΄ μ΅μ μ ν΅κ³Όν©λλ€ (μΉ΄μ΄νΈ λ€μ΄ λ¬Έμλ₯Ό λ³Ό μ μμ). μ΄μ¨λ νλ¬κ·ΈμΈμ μ¬κΈ°μ μμ΅λλ€ : https://github.com/icambron/moment-countdown
@icambron countribuitonμ κ°μ¬λ립λλ€! λ§€μ° λμμ΄λ©λλ€!
λλ moment.jsλ₯Ό μ¬μ©νκΈ° μμνκ³ μ΄ μ νν λ¬Έμ λ₯Ό κ½€ 빨리 λ°κ²¬νμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° μ¬μ©ν μ½λμ λλ€.
moment.duration.fn.format = function (input) {
var output = input;
var milliseconds = this.asMilliseconds();
var totalMilliseconds = 0;
var replaceRegexps = {
years: /Y(?!Y)/g,
months: /M(?!M)/g,
weeks: /W(?!W)/g,
days: /D(?!D)/g,
hours: /H(?!H)/g,
minutes: /m(?!m)/g,
seconds: /s(?!s)/g,
milliseconds: /S(?!S)/g
}
var matchRegexps = {
years: /Y/g,
months: /M/g,
weeks: /W/g,
days: /D/g,
hours: /H/g,
minutes: /m/g,
seconds: /s/g,
milliseconds: /S/g
}
for (var r in replaceRegexps) {
if (replaceRegexps[r].test(output)) {
var as = 'as'+r.charAt(0).toUpperCase() + r.slice(1);
var value = new String(Math.floor(moment.duration(milliseconds - totalMilliseconds)[as]()));
var replacements = output.match(matchRegexps[r]).length - value.length;
output = output.replace(replaceRegexps[r], value);
while (replacements > 0 && replaceRegexps[r].test(output)) {
output = output.replace(replaceRegexps[r], '0');
replacements--;
}
output = output.replace(matchRegexps[r], '');
var temp = {};
temp[r] = value;
totalMilliseconds += moment.duration(temp).asMilliseconds();
}
}
return output;
}
μ΄ μ½λμ νΉμ§ :
d=moment.duration({hours:1,minutes:1,seconds:1});
d.format('HHH:mm:ss');
"001:01:01"
d=moment.duration({days:1, hours:1, minutes: 1});
d.format('H:mm:ss');
"25:01:00"
κ°λ₯ν λ¬Έμ :
Math.floor(moment.duration(milliseconds)).asHours()
μ΄ μμ²μ λν +1
κ°μΈμ μΌλ‘ .humanize()
λν λ©μ§ κ·μΉμ μ¬μ©νκ±°λ .countdown()
λ©μλλ₯Ό λ§λλ κ²λ³΄λ€ .format()
λ©μλλ₯Ό ꡬννλ κ²μ΄ λ ν©λ¦¬μ μ΄λΌκ³ μκ°ν©λλ€. λ¬Έμ μ 95 %λ .format()
λ‘ ν΄κ²°ν μ μμ΅λλ€.
λλ .humanize()
κ° λ λ§μ μ λ°λλ₯Ό μ 곡ν΄μΌνμ§λ§ λ€λ₯Έ κΈ°λ₯μ΄μ΄μΌνλ€λ λ° λμν©λλ€.
ν¬λ§· κΈ°κ°μ νμμ λλ€. νμν λ λ¬Έμμ΄λ‘ μ΄λ₯Ό μ½κ² λ²μ ν μ μμ΄μΌν©λλ€.
λλ stralytic μ½λλ₯Ό μλνμ§λ§ :
d = moment.duration ({μΌ : 1, μκ° : 1, λΆ : 1}); d.format ( 'DH : mm : ss');
"1-215 : 01 : 00"
format()
+1
μ¬μ© μ¬λ‘λ‘ νμ΄λ° μν (3 μκ°)μ μ¬μ©λλ κΈ°κ°μ hh : mm (: ss) λ±μΌλ‘ μ½κ² νμμ μ§μ ν μ μμΌλ©° ν¨μ¬ λ μ½μ΅λλ€. μ§κΈ λΉμ₯μ λ°λλΌ jsμμ μμ λ λκΉμ§ Momentμμ λκ°μ μμ μ μννλ κ²μ΄ λ§€μ° μ΄λ ΅μ΅λλ€. :)
+1 κΈ°κ° νμ!
λ΄κ° μ¬μ©ν λΉ λ₯Έ μμ μ λ€μκ³Ό κ°μ΅λλ€.
moment.duration.fn.format = function(){
str = ""
if(this.days() > 1) str = str + Math.floor(this.days()) + "d "
if(this.hours() > 1) str = str + Math.floor(this.hours()) + "h "
if(this.minutes() > 1) str = str + Math.floor(this.minutes()) + "m "
if(this.seconds() > 1) str = str + Math.floor(this.seconds()) + "s "
return str
}
: +1 : duration.format()
: +1 : duration.format ()λ
μ΄ PRμ μνλ 무μμ λκΉ? λ©λ¦¬ λ¨μ΄μ Έ μμ΅λκΉ?
λλ νλμ μ리λ₯Ό λΉ μ μ΅λλ€.μ΄ λ¬Έμ λ₯Ό λ§λ μ§ κ±°μ 1 λ μ΄λμμ΅λλ€. λλ κ·Έκ²μ μλ ν κ²μ΄λ€. λλ μκ° jsλ₯Ό ν¬ν¬νκ³ ν μ€νΈ / κ²ν ν κ²μ΄μλ μ¦μμ΄ λ¬Έμ λ₯Ό μ λ°μ΄νΈ ν κ²μ λλ€. μ΄ν μμ μνμ μ€λΉν΄μΌν©λλ€. λ°λΌμ μ΄ν λ΄μ 무μΈκ°κ° νμ λ κ°λ₯μ±μ κ±°μ μμ΅λλ€. μ¦, λ΄κ° μμ ν κ²μ λλ€.
@llacroix κ°μ¬ν©λλ€ :)
: +1 : duration.format ()
moment.duration.fn.format = function (zeros, twoDigit) { var hours = this.hours (), minutes = this.minutes (), μ΄ = this.seconds (); var displayFormat = '', zerosFormat = twoDigit? '00': '0', padLeft = twoDigit? -2 : -1; if (μκ° || 0) { displayFormat + = (zerosFormat + μκ°) .slice (padLeft) + 'h'; } if (λΆ || 0) { displayFormat + = (zerosFormat + λΆ) .slice (padLeft) + 'min'; } if (μ΄ || 0) { displayFormat + = (zerosFormat + μ΄) .slice (padLeft) + 's'; } return $ .trim (displayFormat); }
+1 κΈ°κ° νμ.
+1 duration.format
+1 duration.format
μ λ ν¬κ΄μ μΈ κΈ°κ° νμμ΄ μ λ§ νμνκΈ° λλ¬Έμ μ¬κΈ°μ StackOverflowμμ μ€λ λλ₯Ό κ²ν νκ³ μ€λ μ리μ μμ ꡬννμ΅λλ€.
λλ μ¬μ ν λͺ κ°μ§ μ¬μν μΈλΆ μ¬νμ ν΅ν΄ μμ νκ³ μμ§λ§ ν΅μ¬μ μλ£λκ³ κ²¬κ³ ν©λλ€. λ©°μΉ μμ μ¬κΈ°μ μ½λμ μ¬μ λ° μμ κ° κ²μ λ κ²μ λλ€. κΈ°λ³Έ μμ΄λμ΄λ μμμ κΈ°κ°μ κ°μ§ μ μμΌλ©° μλ₯Ό λ€μ΄ μκ° λ μ§ νμ λ¬Έμμ΄κ³Ό μ μ¬ν λ¬Έμμ΄λ‘ νμμ μ§μ ν μ μλ€λ κ²μ λλ€. duration.format ( "d [d] hh : mm : ss")-> 2 μΌ 03:47:24
λν μ΅μ’ κ°μ μμμ μμ μ λ°λλ₯Ό μ μ ν μ μμ΅λλ€. duration.format ( "h [hrs]", 3)-> 42.384 μκ°
duration.formatμ κ²½μ° +1
λ΄ moment.duration.format νλ¬κ·ΈμΈμ κ²μνμ΅λλ€.
https://github.com/jsmreese/moment-duration-format
ν
μ€νΈ μΌμ΄μ€μ λͺ κ°μ§ μμ κ° νλ‘μ νΈμ μμ΅λλ€.
λ΄ νλ¬κ·ΈμΈμ lodash λ° underscore.stringμ μμ‘΄ν©λλ€.
+1 duration.format ()
μ΄ ν°μΌμ 1 λ μ μ κ°λ΄λμμ΅λλ€. λλ κ·Έκ²μ΄ ꡬν λ κ² κ°μ§ μλ€.
@ Maxwell2022 μΌμ£ΌμΌ μ λ μ μ moment.duration.format νλ¬κ·ΈμΈμ κ²μνμ΅λλ€.
https://github.com/jsmreese/moment-duration-format
κ·Έκ² λΉμ μκ² ν¨κ³Όκ° μμ΅λκΉ?
μ΄κ²λ +1ν©λλ€. ν¬κ΄μ μΈ λΌμ΄λΈλ¬λ¦¬μμ λ§€μ° λμ λλ λλ½ μΈ κ² κ°μ΅λλ€.
https://github.com/rmm5t/jquery-timeago λ Momentμμμ΄λ₯Ό ꡬννλ λ°©λ²μ λν μ’μ ν νλ¦Ώ μΌ μ μμ΅λλ€.
@schmod μ§λλ¬ moment.duration.format νλ¬κ·ΈμΈμ κ²μνμ΅λλ€.
https://github.com/jsmreese/moment-duration-format
μ¬μ© μ¬λ‘μμ μλν©λκΉ?
: +1 :!
μ΄κ²μ λλ₯Ό μν΄ μΌν κ²μ λλ€ (κ·Έλ¬λ> 24 μκ° λμμ μλλλ€) :
moment.duration.fn.format = function(format) {
return moment(this.as('milliseconds')).format(format);
}
@jsmreese κ·νμ https://github.com/jsmreese/moment-duration-format μ΄ LoDash μ μμ‘΄νλ κ²μ μ§μ ν λλ¨ν μ‘΄μ¬μ λλ€. μ°λ¦¬λ μ΄λ―Έ λ°μ€μ μ¬μ©νκ³ μμΌλ©°μ΄ μμ κΈ°λ₯μ μν΄ LoDashλ‘ μ ννλ κ²μ μ λΉν ν μ μμ΅λλ€. νλ¬κ·ΈμΈμ΄ λ κ°μ§ λͺ¨λμ λ 립μ μ΄λΌλ©΄ λ§μ μ¬λλ€μκ² λ μ€μ©μ μΈ μ΅μ μ΄ λ κ²μ΄λΌκ³ μκ°ν©λλ€.
@wleeper μ λμ μΌλ‘ λμν©λλ€.
λ΄ νκ²½μ LoDashμ Underscore.Stringμ μ¬μ©νκΈ° λλ¬Έμ ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ λ©μλλ₯Ό μ¬μ©νμ΅λλ€. λͺ λ¬ μ μ 첫 λ²μ§Έ λ²μ μ΄ νμνκ³ μ΄λ₯Ό ꡬννκ³ μΆμμ΅λλ€.
곧 ν΄λΉ μ’ μμ±μ μ κ±°νκ² μ΅λλ€.
@wleeper Underscore λ° LoDashλ μνΈ νΈνλ©λλ€. @jsmreese κ°
@ chall8908 κ·Έκ² λ¬Έμ μ΄κ³ @wleeper κ° λ§μ΅λλ€. μ λ Underscore λΉλμ μΌλΆκ° μλ LoDashμ κΈ°λ₯μ μ¬μ©νκ³ μμ΅λλ€.
Underscore.String μ’ μμ±μ μ κ±°νμΌλ©° Underscore νΈνμ±μ μν΄ λ Έλ ₯νκ³ μμ΅λλ€.
moment-duration-format νλ¬κ·ΈμΈμ΄ μ΄λ¬ν λ¬Έμ μ€ νλλ₯Ό ν΄κ²°νκΈ°λνμ§λ§, λ‘μΌμΌκ°μ μλνλ μ κ·Ό λ°©μμ΄ νμνλ€κ³ μκ°ν©λλ€ (νμ€ν ν¨μ¬ λ μ΄λ ΅μ΅λλ€).
μ λ μ°λ¦¬κ° # 1241μ ꡬννλ μμ
μν΄μΌνλ€κ³ μκ°ν©λλ€. μ΄κ²μ μ¬λμ΄ μ½μ μμλ λ μ§, λ μ§, κΈ°κ°, λ‘μΌμΌ μ 체 λͺ©λ‘μ λ λλ§νλ μΈ‘λ©΄μμ λ§μ λ¬Έμ μ΄ κ²μ
λλ€. Momentκ° CLDR μΈμ΄ λ°μ΄ν°μ μ‘μΈμ€ ν μμλ κ²½μ° formatDuration
λ ꡬννκΈ°κ° λ§€μ° κ°λ¨ν©λλ€.
jQueryμ Globalize λΌμ΄λΈλ¬λ¦¬λ λ§μ λμΌν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ Έλ ₯νκ³ μμΌλ©° μ΄λ€κ³Ό νλ ₯νλ κ²μ΄ λ Όλ¦¬μ μΌλ‘ 보μ λλ€. Twitterμλ μ΄λ―Έ μ΄λ° μ’ λ₯μ λ§μ μμ μ μννλ λ§€μ° ν¬κ΄μ μΈ λΌμ΄λΈλ¬λ¦¬ κ° μμ΅λλ€.
μ’μ΅λλ€. μ¬κΈ° CLDR μμ ꡬν κ°λ₯ν APIκ° μμ΅λλ€. μ΄λ»κ² μκ°ν΄?
duration:human(bool) // future/past dep/indep
duration:human({
with(=min+max): 'hours'|'minutes'|'seconds',
min: 'hours',
max: 'days',
float: bool,
length: "long|short|narrow",
abs: bool
})
: +1 : +1
: +1 :
+1 duration.format
+1 duration.format
+1
+1
+1
무μΈκ°μ λ°νμμ νμνκ³ μΆμ΅λλ€.
+1
https://github.com/jsmreese/moment-duration-format
moment-duration-format λ²μ 1.2.1μ΄ NPMμ κ²μλμμ΅λλ€.
Node.jsμ λΈλΌμ°μ λͺ¨λμμ μλν©λλ€.
Lo-Dash λλ Underscoreμ μμ‘΄νμ§λ§ μ΄μ λ λ λ€ ν
μ€νΈλκ³ μλν©λλ€.
μλ Underscore.String μ’
μμ±μ΄ μ κ±°λμμ΅λλ€.
νμ¬ Bower ν¨ν€μ§ λ±λ‘ / λ±λ‘ μ·¨μ λ¬Έμ κ° ν΄κ²°λλ μ¦μμ΄ λ²μ μ Bowerμ κ²μ ν κ²μ λλ€.
κΈ°κ° νμμ κ²½μ° +1
μ΄κ²μ΄ λμκ΄μ μΌλΆκ°λκΈ°λ₯Ό λ°λλλ€.
+1
+1
+1
: +1 :
duration.format ()μ κ²½μ° +1
+1
μ€ μ, μ μ΄λ μ ν 0 κ°μΌλ‘ μΆλ ₯νκΈ° μν΄ moment.duration(3, 'seconds').get('ss')
μ (λ₯Ό) μν ν μ μμΌλ €λ©΄ νμ€ν μ°Έμ¬ν κ²μ
λλ€.
μ΄ μμ²μ μνλ 무μμ λκΉ? μ§μ μ μ΄λ£¨κΈ° μν΄ μ΄λ€ λμμ΄ νμν©λκΉ?
λΏ‘λΏ‘
μ‘΄μ¬ν©λλ€ : https://github.com/jsmreese/moment-duration-format/
Lo-Dash λλ Underscoreμ λν μμ‘΄μ±μ μ κ²½ μ°μ§ μλλ€λ©΄ μνλ κ²μ ν μ μμ΅λλ€.
μΈμ κ°λ κ·Έ μμ‘΄μ±μ μ κ±° ν μκ°μ ν κ²μ
λλ€ ...
humanize
λ https://github.com/jsmreese/moment-duration-format/ μ΄ stdlibμ μλ€λ μ¬μ€μ λλμ΅λλ€. λλ κ·Έκ²μ΄ μ΅μνμ λλΌμμ μμΉμ μλ°νλ€κ³ λλλλ€. μ΅μν κ°λ¨ν μ«μ νμμΌλ‘ λμκ° μ μμ΄μΌν©λλ€.
moment.duration(123, "minutes").format();
// "2:03:00"
μ§κΈμ λ€μμ μ¬μ©νκ³ μμ΅λλ€.
moment.utc(moment.duration(300 * 1000).asMilliseconds()).format("HH:mm:ss.SSS")
// 00:05:00.000
moments.jsμ μΌλΆλ‘ κ³§λ³΄κ³ μΆμ΄μ
+1
+1
κ΄λ ¨ λ©λͺ¨μμ duration.toString()
λ [Object object]
λ°νν©λλ€. humanize()
λ°νν΄μΌνμ§ μμ΅λκΉ?
+1μ μ΄κ²μ λν΄ λ λ§μ μ μ΄κΆμ κ°κΈ°λ₯Ό μν©λλ€.
+1
Lo-Dash λλ Underscoreμ λν μ΄μ μ’ μμ±μ μ κ±°νλ Moment Duration Format 1.3.0μ λ°©κΈ κ²μνμ΅λλ€. μ΄μ μ μΌν μ’ μμ±μ Moment.js μ체μ λλ€.
@jsmreese μ’μ μ¬λ! :λ§₯μ£Ό:
@jsmreese λ©μ§λ€. !
μ΄κ²μ΄ moment.js μ체μ μΌλΆκ° μλ μ΄μ λ 무μμ
λκΉ? humanizeλ μ λ°λ μμ΄λ κ·Έλ κ² μ μ©νμ§ μμ΅λλ€. μ 1 μκ° 30 λΆμμ 1 μκ°μΌλ‘ λ°μ¬λ¦Όνκ³ μΆμ΅λκΉ? .. μ¬μ© μ¬λ‘κ° μμ΅λλ€.
+1, jsmreeseμ νλ¬κ·ΈμΈμ νλ₯νκ² μλνμ§λ§ moment.jsμ μΌλΆλΌλ©΄ μ’μ κ²μ λλ€.
+1. μ΄ κΈ°λ₯μ μΈκ°νλμ΄μΌν©λλ€.
duration.formatμ κ²½μ° +1
@jsmreese λ κ±°μ 1 λ μ μ νλ¬κ·ΈμΈμ κ²μ @timrwood @ichernev μ΄κ²μ λ©μΈ moment.js λΌμ΄λΈλ¬λ¦¬μ
+1
+1
: +1 : duration.format
+1
: +1 :
+1
μ΄κ²μ νμ¬ μνλ 무μμ λκΉ?
μλ§λ μ μ§ κ΄λ¦¬μλ μ°λ¦¬κ° 1000μ΄ λ λκΉμ§ λλ μν΄ μ μΌλ₯Ό κΈ°λ€λ¦¬κ³ μμ΅λκΉ? λΏ‘λΏ‘
@gkatsanos- λ μ΄μ Momentλ₯Ό μ μ§νλ λ° μ κ·Ήμ μΌλ‘ μ°Έμ¬νκ³ μμ§ μμ§λ§ (νμ λμ°λ―Έμμ΅λλ€), μ μΆμ²μ μ ν μ€νΈ λ ν 리νμ€νΈμ λλ€. νμ€ν μ΄κ²μ μ€μ λ‘ μ½λ©νλ €λ λκ΅°κ°κ° μμ΅λλ€.
@icambron μ΄κ²μ μ΄λ―Έ νλ¬κ·ΈμΈμΌλ‘ μ‘΄μ¬ν©λλ€ .. ν μΌμ΄ λ μμ΅λκΉ?
κ΄λ¦¬μ btwλ λꡬμ
λκΉ?
@icambron νλ¬κ·ΈμΈμ
κ·Έλ¦¬κ³ κ·Έκ²μ λ§€μ° λͺ¨μμ΄ μ’μ νλ¬κ·ΈμΈ μΈ κ² κ°μ΅λλ€. μ΄μ λ°λΌ μ¬μ€μ μ μΈμμΌ°λ€ lodash
λμ underscore
, PRλ‘ λ§λ€κΈ° μν΄ λ°©μ§ λ€λ₯Έ μΌμ΄ .. κ±°κΈ° κ²μμμ ν¬νΈ κ²μΌλ‘ 보μΈλ€ lodash
μ underscore
μ κ·Έλ κ² μ΄λ ΅μ§ μμ΅λλ€. / cc @jsmreese
@alexanderbeletsky @gkatsanos μ¬μ€ μΌλ§ μ μ lodash
λλ underscore
μ’
μμ±μ μ κ±°νμ΅λλ€.
λ΄ νλ¬κ·ΈμΈμ΄ Moment.js μ½μ΄μ ν¬ν¨λλ μ£Όμ μ₯μ λ¬Ό μ€ νλλ μμ ν i18n μ§μμ΄ μλ€λ κ²μ λλ€.
μ΄κ²μ΄ μ μκ² κ°μΈμ μΌλ‘ ν° κ΄μ¬μ¬μ λλ€. μ§μλλ μ¬λ¬ μΈμ΄λ μ μκ² ν° μΌμ΄λ©° κΈ°λ₯ Aκ° μ΄λ€ μΈμ΄λ‘λ μλνμ§λ§ κΈ°λ₯ Bλ μμ΄λ‘λ§ μ 곡λλ μν©μ λΉ μ§κ³ μΆμ§ μμ΅λλ€.
@jsmreese μλ§λ μ μ₯μμ μ μ μ λ μμ μ λ§λ€λ©΄ μ νν μνν΄μΌ ν μμ μ λν΄ λΆλͺ ν λμμ΄ λ κ²μ λλ€.
@mattgrande @alexanderbeletsky νμ ν ν°μ μ΄λ―Έ μ¬μ©μ μ§μ μ΄ κ°λ₯νλ©° νμ ν νλ¦Ώμ μμμ μ΄λ―λ‘ λ¬Έμ κ°λμ§ μμ΅λλ€.
κΈ°λ³Έ μμ ν νλ¦Ώμ μ΄λ€ μ μΌλ‘λ νμ§νλμ§ μμΌλ©° μμμ μ νμ§ννκ±°λ κ°μ νμ§ν λ μ«μ μμμ μΆκ° ν μ μμ΅λλ€. κ·Έκ² λ΄ λ¨Έλ¦¬ κΌλκΈ°μμ λλ½ λ μ λΆμ λλ€.
: +1 :
+1 κΈ°κ° νμ!
sooo .... μμ΄ μ΄κ±° κ±°λ?
μ¬κΈ°μ λ°±λ§ κ°μ λκΈμ΄ μκΈ° λλ¬Έμ λͺ κ°μ§ μ¬νμ μ£Όλͺ©νμμμ€. λλ λ©μΈν μ΄λκ° μλλ©°μ΄ νλ‘μ νΈμμ λ μ΄μ νλνμ§ μμ§λ§ λ κ°μ§λ₯Ό νμ ν©λλ€.
+1 duration.format
+1 κΈ°κ° νμ!
+1 duration.format
+1 duration.format. μ°λ¦¬μ κ²½μ°λ μ΄λ₯Ό μ λ¬ν μμλ ν¨μμμ΄λ₯Ό ν¬λ§·νλ λ¬Έμμ΄μ μ 곡νκ³ μνλ€λ κ²μ λλ€. μ§κΈ μ°λ¦¬λ moment.startof ( "w"). add ( "s", nrOfSeconds) .format (customFormatString);
λΆννλ μ§λμ£Ό startof ( "w")κ° μΌμμΌμ΄κ³ μΌμμΌμ μΌκ΄ μ μ½ μκ°μ΄μ΄μ μ€λ₯κ° λ°μνμ΅λλ€. κ·Έλμ ν μκ°μ λμ³€μ΅λλ€. λ¬Όλ‘ isDSTShifted ()λ‘ νμΈν μ μμ§λ§ νμμ μ§μ νκΈ° μν΄ κΈ°κ°μ λ μ§λ‘ λ³ν ν νμκ°μλ κ²μ μ¬μ ν ββκ΅μ₯ν©λλ€.
+1 duration.format
+1 duration.format
duration.format
+1
duration.formatμ κ²½μ° +1
+1νλ μ¬λμ΄ μ€μ λ‘μ΄ μ€λ λλ₯Ό μ½μ§ μκΈ° λλ¬Έμ λ«μ μ μμ΅λκΉ?
2015 λ 6 μ 10 μΌ μμμΌ, 08:30 SamFromDaUk [email protected] μμ± :
duration.formatμ κ²½μ° +1
β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ νμΈνμΈμ.
https://github.com/moment/moment/issues/463#issuecomment -110751635.
μλλ©΄ μμ νμκ² μ΅λκΉ?
George, +1μ μΆκ°νλ μ¬λλ€μ 묡μμ μΌλ‘ λμνμ§ μλ κ² κ°μ΅λλ€.
λ¨μν μ΄λ¬ν κΈ°λ₯μ μν©λλ€.
μλ¦Όμ΄ μ§μ¦μ λΈλ€λ©΄ ꡬλ
μ·¨μλ₯Ό κ³ λ €νμΈμ.
μ€.
2015 λ
6 μ 11 μΌ 00:07, "George Katsanos" [email protected]μ΄ μμ±νμ΅λλ€.
μλλ©΄ μμ νμκ² μ΅λκΉ?
β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ νμΈνμΈμ.
https://github.com/moment/moment/issues/463#issuecomment -110767322.
githubμ ν¬ν κΈ°λ₯μ΄μλ μ΄μ λ (λ΄ μ΄ν΄μμ) ν λ‘ μ λ°©ν΄νκΈ° λλ¬Έμ λλ€.
λΉμ μ΄ μνλ λͺ¨λ κ²μ μ묡μ μΌλ‘ λμνμ§ μμ μ μμ΅λλ€. κ·Έκ²μ λμμ΄λμ§ μμ΅λλ€. κ·Έκ²μ΄ λλ¨νλ€κ³ μκ°νμ§ μλλ€λ©΄, μ€λ λλ₯Ό μ½κ³ λΉμ μ μ£Όμ₯ (νΉν, μλ‘μ΄ μ£Όμ₯μ΄λ λΉμ μ΄ μλͺ» κ³ λ €νλ€κ³ μκ°νλ μ )μ μ 곡νμμμ€.
λλ μμ§ ν₯λ―Έλ‘μ΄ μ£Όμ₯μ΄ λ¨μ μλ€κ³ μκ°νκΈ° λλ¬Έμ μ¬μ ν ꡬλ νκ³ μλ€. λλ κ·Έκ²λ€μ λ£κΈ°λ₯Ό κΈ°λνμ§λ§ νμ λ¨μ§ λλ£μ μλ ₯μ ꡴볡ν΄μλ μλλ€.
μμμ μΈκΈ ν @icambron νλ¬κ·ΈμΈμ΄ μλνλμ§ νμΈν μ μμ΅λλ€.
λΉμ μ΄ μ μ κ°λ€λ©΄ λ λμ μΆλ ₯μ κ°μ§ .fromNow()
λ₯Ό μν©λλ€ (μ : μλ§μ‘΄μ λ°°μ‘ μΉ΄μ΄νΈ λ€μ΄). λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
// include the plugin
var cutoffDate = moment().add(3, 'hours'); // some date in the future that we're counting down to
var now = moment();
var output = moment.duration(cutoffDate.diff(now)).format('h [hours] m [minutes] s [seconds]');
// "3 hours 0 minutes 0 seconds"
λ€, λΆλͺ νκ² ν κ²μ λλ€. moment.duration (). format ()μμ΄ νλ¬κ·ΈμΈκ³Ό ν¨κ» μλν©λλ€ : https://github.com/jsmreese/moment-duration-format
μ μ±μ μ¬μ©νλ κ²½μ° oaf:moment-duration-format
μ΄κ²μ λλ₯Ό μν΄ μλνμ§ μλ κ² κ°μ΅λλ€. λ λ² μ¬μ΄μ moment .diffλ₯Ό μ¬μ©νκ³ μμ΅λλ€. μλν©λλ€. λ¬Έμ λ "pm"κ³Ό "am"μ¬μ΄μμμ λμ λλ€. μ€ν 9μμ μ¬ννκ³ μ°©λ₯νλ€κ³ κ°μ ν©λλ€. μ€μ 2μ, μ νν μκ°μ λ°μμΌν©λλ€.
@ Markj89 λΉμ μ stackoverflow μ£Όμ λ₯Ό μ΄ νμκ° μμ΅λλ€.
+1
+1
+1
: +1 :
μ΄ λ¬Έμ μ’ κ²°μ +1. νλ¬κ·ΈμΈμ μ¬μ©νλ κ²μ κ²¬κ³ ν μ루μ μ λλ€.
+1
+1
.format()
μ +1
+1, 4 λ νμλ ꡬνλμ§ μμ΅λκΉ? :λ
+1
Btw. μΈκ°ν λ νμλ νμ± ν μ μμ΄μΌνλ€κ³ μκ°ν©λλ€. μλ₯Ό λ€μ΄ 7 days and 5 hours
ꡬ문 λΆμμ΄ κ·Έλ κ² μ΄λ ΅μ§ μμ΅λλ€ ...
@jsmreese μ νλ¬κ·ΈμΈμ΄ νλ₯νκ² μλ νμμ κ°μ‘°νκ³ μΆμμ΅λλ€!
: +1 :
+1 duration.format
+1 κΈ°κ° νμ
+1 duration.format
+1 duration.format
: +1 :
λλ μ΄κ²μ # 1048μ μ°¬μ±νμ¬ λ«μ κ²μ λλ€. μ¬λΌ μ‘λ€λ μλ―Έλ μλλλ€. λͺ λ μ΄ μ§λ λ κ°μ§ λ¬Έμ κ° μμκ³ λ λ€ 'κΈ°κ° νμ μ§μ 'μΌλ‘ μμ½λ©λλ€. λ€λ₯Έ νλλ μ΄κ²μ λ λͺ ννκ² μ€λͺ ν©λλ€.
+1 duration.format
+1 duration.format
+1
.localeData (). relativeTime (45, true, 'mm')μ μ¬μ©νκ³ 45 λΆμ κ°μ Έμ΅λλ€.;)
+1 μ΄κ²μ λν΄ λ무 λ§μ μ΄μΌκΈ°κ° μμ§λ§ ꡬνλμ§ μμμ΅λλ€. μ΄ https://github.com/jsmreese/moment-duration-formatμ λν λ³λμ ν¨ν€μ§λ
κΈ°κ°μ μ΄λ€ νμ μΌλ‘λ νμνλ €λ©΄ κΈ°κ°μ msλ‘ λ³ν ν λ€μ μκ°μΌλ‘ λ³ννλ©΄λ©λλ€.
moment(duration.as('milliseconds')).format('HH:mm:ss')
κ°μ¬! λ¬Έμμ μμ΅λκΉ? λͺ» λ΄€μ΄ ...
μλνμ§ μκΈ° λλ¬Έμ λ¬Έμμ μμ΅λλ€. μ λμ€ μλλ₯Ό μ¬μ©νμ¬ λ°λ¦¬ μ΄λ₯Ό μλ μ΄νμ μμ μΌλ‘ ν΄μνλ ν΄νΉμ λλ€. λ°λΌμ κΈ°κ°μ΄ 24 μκ° μ΄μμ΄λ©΄ 무λμ§λλ€.
μ΄ μ½λμ λν λͺ κ°μ§ μ¬ν :
hh ν ν°μ μ€μ / μ€νμ μ¬μ©λλ ν ν°μ΄λ―λ‘ κΈ°κ°μ μ΅λ 12κΉμ§λ§ κ°λ₯ν©λλ€.
23κΉμ§ μ¬λΌκ°λ HH ν ν°μ μ¬μ©νλλΌλ λ€μ λ μ§λ‘ λμ΄κ° κ²μ΄λ―λ‘ κΈ°κ°μ 23 : 59 : 59.999λ³΄λ€ κΈΈ μ μμ΅λλ€.
μ΄ μ½λκ° μμ±λλ©΄ UTCλ‘ λ μλ²μμλ§ μλν©λλ€. λ€λ₯Έ μκ°λμ λͺ¨λ λΈλΌμ°μ λ μκΈ°μΉ μμ κ²°κ³Όλ₯Ό μμ±ν©λλ€.
μ΄ ν΄νΉμ μ¬μ©νλ €λ©΄ λ€μκ³Ό κ°μ΄ μμ±ν΄μΌν©λλ€.
moment.utc(duration.as('milliseconds')).format('HH:mm:ss')
κ·Έλ¬λ λ΄κ° μ§μ νλ―μ΄ μ΄κ²μ κ·νμ κΈ°κ°μ΄ 24 μκ° λ―Έλ§μΈ κ²½μ°μλ§ μλν©λλ€. κ·Έ μ΄μ, λ€μ μμ 1λ‘ λμκ°λλ€.
κ°μ¬. .minutes()
μ .seconds()
μ°κ²°ν μ μλ€λ κ²μ μμλ΄λ λ° μ€λ μκ°μ΄ μ’ κ±Έλ Έμ΅λλ€. μ λ₯Ό λ°λ³΄λΌκ³ λΆλ₯΄μΈμ.νμ§λ§ λ¬Έμμμ .seconds()
μ .asSeconds()
μ μ°¨μ΄μ μ΄ λΉμ₯ νμ€νμ§ μμμ΅λλ€ ...νμ§λ§ μ΄μ μ€μ λ‘ κ±°κΈ°μ μλ€λ κ²μ μμμ΅λλ€! :)
μ : console.log(duration.minutes()+":"+duration.seconds());
λλμ΄ λ°©λ²μ κ³ μ ν κ²μ΄λ€.
@elasticsteve 10λ³΄λ€ μ μΌλ©΄ μ΄ λΆλΆμ μ ν 0μ μΆκ° ν μλ μμ΅λλ€. :λμ§:
@butterflyhug @elasticsteve μ΄κ²μ΄ μ€μ λ‘ format
λ₯Ό μ¬μ©νκ³ μΆμλ μ£Όλ μ΄μ μ
λλ€. μ κ²½μ°μλ κ°λ¨ν 짧μ μκ° μΉ΄μ΄ν°μ΄λ―λ‘ @maggiepint μ μ루μ
μΌλ‘ μΆ©λΆν©λλ€.
moment.utc(duration.asMilliseconds()).format('HH:mm:ss')
@sagivo μ’μ μ§μ ! μ΄μ @maggiepint μ루μ μ΄ λ 맀λ ₯μ μΌλ‘ 보μ λλ€. λ΄ μλ²λ μ΄μ¨λ UTCμ λλ€.
λ¬Όλ‘ μ λλ€. λλ λν νλ‘λμ μ½λμμ κ·Έ ν΄νΉμ μ¬μ©νμ΅λλ€. κ·Έλ¬λ μ¬νκ² μ€ν¨νλ μν©μ΄ λ§κΈ° λλ¬Έμ μΌλ°μ μΈ μ루μ μΌλ‘ κΆμ₯νμ§ μμ΅λλ€ (λͺ κ°μ§ νΉμ μ¬μ© μ¬λ‘λ₯Ό μ μΈνκ³ ). (μ : μμ κΈ°κ°μ μμ§ λͺ μ μ μΌλ‘ μΈκΈλμ§ μμ λ λ€λ₯Έ μ€μν μ€ν¨ μ¬λ‘μ λλ€.)
+1
+1 duration.format () !!!!!!!!!
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
λλ²κ·ΈνκΈ° μ΄λ €μ΄ μκ° +1
+1
λ€μκ³Ό κ°μ΄ μ½κ² ν μ μμ΅λλ€.
var duration = moment().add(5, 'days') - moment().local();
var s = Math.floor( (duration/1000) % 60 );
var m = Math.floor( (duration/1000/60) % 60 );
var h = Math.floor( (duration/(1000*60*60)) % 24 );
var d = Math.floor( duration/(1000*60*60*24) );
return d + ' days ' + h + ' hours ' + m + ' minutes ' + s + ' seconds before the deadline.';
// 4 days 23 hours 59 minutes 59 seconds before the deadline.
ν λͺ μ μ¬μ©μ νΈμν° @Toon_Ladyboy μμ²
λ€μκ³Ό κ°μ΄ μ½κ² ν μ μμ΅λλ€.
var duration = moment().add(5, 'days') - moment().local(); var s = Math.floor( (duration/1000) % 60 ); var m = Math.floor( (duration/1000/60) % 60 ); var h = Math.floor( (duration/(1000*60*60)) % 24 ); var d = Math.floor( duration/(1000*60*60*24) ); return d + ' days ' + h + ' hours ' + m + ' minutes ' + s + ' seconds before the deadline.'; // 4 days 23 hours 59 minutes 59 seconds before the deadline.
μΆμ νμ§λ§ ν¨κ³Όμ μ λλ€.
2019 λ μλμ΄ κΈ°λ₯μ΄ νμν©λλ€.
Humanizeμ κ°λ¨ν λ§€κ° λ³μ (μ humanize(precise: true)
)λ λͺ¨λ λ°μ¬λ¦Όμ μ°ννμ¬ λͺ¨λλ₯Ό ν볡νκ² λ§λ€ μ μμ΅λλ€. κ²λ€κ° λ°μ¬λ¦Όμ ꡬννκΈ° μ΄λ €μ΄ λΆλΆμ
λλ€. λλ¨Έμ§λ format ()μΌλ‘ μνλλ λ€λ₯Έ νμκ³Ό λ§μ°¬κ°μ§λ‘ κΈ°κ°μ κ°λ¨ν λ³ννλ κ²μ
λλ€.
μ’μμ΄ moment
λ°©λ²μ΄λΌλ fromNow()
κ³Ό κ°μ΄ μ’μ μ¬λμ΄ μ½μ μμλ ννλ‘ νΉμ μκ°μμ μκ°μ λ°ν κ²μ΄λ€ :
moment('2019-04-30T07:30:53.000Z').fromNow() // an hour ago || a day ago || 10 days ago
λλ λ νΉμ λ μ§ μ¬μ΄μ μνλ κ²½μ° λ€μμ μ¬μ©ν μ μμ΅λλ€.
var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b); // "a day ago"
λ¬Έμμμ κ°μ Έμ΄ :
λ€μ μ΄ μ μμ΅λκΉ? μ΄κ²μ λ§€μ° κΈ°λ³Έμ μΈ κΈ°λ₯μ λλ€.
μ κ²½μ°μλ λ¬Έμ λ₯Ό ν΄κ²° ν ν¨ν€μ§λ₯Ό μ°Ύμμ΅λλ€.
https://github.com/EvanHahn/HumanizeDuration.js
λ€λ₯Έ μ¬λμκ²λ μ μ© ν μ μμ΅λλ€. :)
2019 λ 7 μ λ°μ΄ κΈ°λ₯μ μμ§ μ¬μ©ν μ μμ΅λλ€.
2019 λ 7 μ λ°μ΄ κΈ°λ₯μ μμ§ μ¬μ©ν μ μμ΅λλ€.
μμ§ μλν΄ λ³΄μ§ μμμ§λ§ λ°©κΈ μμ μ°¨ λ Έμ΅λλ€!
npm install moment-duration-format
2019 λ 9 μ μμ§ κ³΅μμ μΌλ‘μ΄ κΈ°λ₯μ λμΉκ³ μμ΅λλ€.
d.format('H:mm:ss');
"1:01:01"
λνμ΄ κΈ°λ₯μ κ°μ§ μ μκΈ°λ₯Ό λ°λλλ€.
d.format('D-H:mm:ss'); // existence of D will mod hours to 24
"999-23:59:59"
μ μ΄κ²μ΄ λ«νλμ§ κΆκΈν μ¬λμ΄ μλ€λ©΄ : https://github.com/moment/moment/issues/463#issuecomment -228543000
μ΄κ²μ κ²°μ½ μ΄μμ μ΄μ§λ μμ§λ§ ν΄κ²° λ°©λ²μΌλ‘ μ΄μ κ°μ μμ
μ μννμ΅λλ€. λΉνμ± ν μ¬μ©μλ₯Ό λ‘κ·Έ μμνκΈ°μν μΉ΄μ΄νΈ λ€μ΄μ΄μλ duration
κ°μ²΄κ° μμκ³ λ¨μ μκ°μ ν¬λ§·νκ³ μΆμμ΅λλ€.
// What I did:
private getTimeString(duration: moment.Duration): string {
const time = moment()
.seconds(duration.seconds())
.minutes(duration.minutes());
return time.format('mm:ss');
}
// What I'd rather do (as many others have mentioned)...
private getTimeString(duration: moment.Duration): string {
return duration.format('mm:ss');
}
λ΄ ν΄ν€ μ루μ :
import moment from 'moment';
const formatInt = (int: number): string => {
if (int < 10) {
return `0${int}`;
}
return `${int}`;
};
export const formatDuration = (time: string): string => {
const seconds = moment.duration(time).seconds();
const minutes = moment.duration(time).minutes();
const hours = moment.duration(time).hours();
if (hours > 0) {
return `${formatInt(hours)}:${formatInt(minutes)}:${formatInt(seconds)}`;
}
if (minutes > 0) {
return `${formatInt(minutes)}:${formatInt(seconds)}`;
}
return `00:${formatInt(seconds)}`;
};
2020 λ
λλ λ€μ λ°©λ²μ μ¬μ©νλλ°, λ€λ₯Έ μ¬λμκ² μ μ© ν μ μμ΅λλ€. :)
function formatDuration(duration, format) {
const date = moment().startOf('day');
return date.add(duration).format(format);
}
(μ λ 00:00μμ 23:59 μ¬μ΄μ κΈ°κ°μ ν¬λ§·νλ λ°λ§ μ¬μ©ν©λλ€)
μμ§λμ΄κ² νμν΄
μ΄λ¬ν 'get'μ μνλ λ°©μμΌλ‘ νμμ μ§μ νλ λ° λμμ΄λ©λλ€.
duration.get('years')
duration.get('months')
duration.get('days')
duration.get('hours')
duration.get('minutes')
duration.get('seconds')
λ΄κ° ν¨κ» μΌνλ κ² :
const formatDuration = ms => {
const days = Math.floor(ms / 8.64e7);
const msOnLastDay = ms - days * 8.64e7;
return (days < 10 ? "0" + days : days) + ":" + moment.utc(msOnLastDay).format("HH:mm:ss.SSS");
};
formatDuration(5)
"00:00:00:00.005"
formatDuration(500)
"00:00:00:00.500"
formatDuration(50000)
"00:00:00:50.000"
formatDuration(5000000)
"00:01:23:20.000"
formatDuration(500000000)
"05:18:53:20.000"
// for reference
JSON.stringify(moment.duration(500000000)._data, null, 2)
"{
"milliseconds": 0,
"seconds": 20,
"minutes": 53,
"hours": 18,
"days": 5,
"months": 0,
"years": 0
}"
2019 λ 7 μ λ°μ΄ κΈ°λ₯μ μμ§ μ¬μ©ν μ μμ΅λλ€.
μμ§ μλν΄ λ³΄μ§ μμμ§λ§ λ°©κΈ μμ μ°¨ λ Έμ΅λλ€!
npm install moment-duration-format
μ΄κ²μ μλ²½νκ² μ μλν©λλ€ :)
κ²μμ λλ¬λ€ :)
κ°μ¬ν©λλ€, κ°μ¬ν©λλ€ !!!
De : Aleksey Makas [email protected]
Enviado : sexta-feira, 2020 λ
9 μ 9 μΌ 11:03
Para : moment / moment [email protected]
μ°Έμ‘° : Douglas Aguiar [email protected] ; μ½λ©νΈ [email protected]
Assunto : Re : [moment / moment] κΈ°κ° λλ½ κΈ°λ₯ (# 463)
κ²μμ λλ¬λ€ :)
β
λκΈμ λ¬μ κΈ° λλ¬Έμ μμ ν κ²μ
λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHub https://github.com/moment/moment/issues/463#issuecomment-706200427 μμ 보거λ νμΈμ .
κ°μ₯ μ μ©ν λκΈ
2019 λ μλμ΄ κΈ°λ₯μ΄ νμν©λλ€.