çŸåšããã£ãŒã«ãã調ã¹ãŠããæéã®è§£æãæåãããã©ãããå€æããæ¹æ³ã¯ãããŸããã
åæããŸãã ãŸããisValidã¡ãœãããå¿ èŠã§ãã
ç¡å¹ãªæéã¯äŸå€ãã¹ããŒããå¿ èŠããããšæããŸããç¡å¹ãªæéã®çŸåšã®åŠçã¯ãã°ã§ãããæ©èœæ¡åŒµã§ã¯ãããŸããã 次ã®å Žåãèæ ®ããŠãã ããã
`var wrong = moment.duration(3,'mintues');`
çµæã¯ã©ããªããŸããïŒ ããã¥ã¡ã³ãã¯ãæªãå ¥åã§äœãèµ·ããããå®çŸ©ããŠããŸããã
add()
ãšsubtract()
代ããã«duration
ã䜿çšããããããããã«ã¯ã«ã¹ã±ãŒãå¹æããããŸãããããã£ãŠããããã«ãæªå®çŸ©ã®åäœããããŸãã
var hmm = moment().subtract(3,'mintues').toDate();
var uhoh = moment().add(3,'mintues').toDate();
æåãã¹ããããäœãèµ·ããããç¥ãããšãã§ããŸãã moment
ã¯ããŒãã®æéã䜿çšããããšã§ãæåãããŸãã
moment()
ãäžæ£ãªå
¥åã«å¯ŸããŠåã«äŸå€ãã¹ããŒããå Žåããããã®åé¡ã¯ããã«ç¹å®ãããŸãã ãµã€ã¬ã³ãã«ãæåãââãããããGarbage-InãGarbage-Outã¯ã©ã¹ã®ãã°ã解決ããŸããã§ããã
ã¿ã€ããã¹ãããæéã®åäœã¯çŸåšå®çŸ©ãããŠããªããããäžæ£ãªæååã§äŸå€ãã¹ããŒãå§ãããšãäžäœäºææ§ããããŸãã
ã¿ã€ããã¹ã®å¯èœæ§ãããä¿¡é ŒãããŠããªãæååã䜿çšãããŠããå Žåããã®æååã䜿çšããŠæå¹ãªæéãèšè¿°ããããšãã§ãããã©ããããã¹ããããšãã«ã try/catch
ãæ瀺çã«äœ¿çšã§ããŸãã
+ 1 @ markstosã
ã¹ããŒããstrict
ãªãã·ã§ã³ïŒæ¥ä»ã®ã¢ãŒã¡ã³ãèªäœãªã©ïŒããµããŒãããã®ã¯ã©ãã§ããïŒ è§£æã倱æãããšãã«ãŒãã®æéãè¿ãããšã¯éåžžã«å±éºã§ãã
strict
ãªãã·ã§ã³ã¯å€æŽããªãããã¯ãŸãã§ãããæåããæéããŒãã§ããããšãããã©ã«ãã®åäœãšããŠé©åã§ãããããç¡å¹ãªæ¥ä»ã解æããããšã¯ãªããšæããŸãã
åæããŸããã å¯èœãªå€æŽã¯[email protected]ã§ã®ã¿çéžã
æ®ãã®ç¬éãšåããã¿ãŒã³ã䜿çšããŠã¿ãŸãããïŒ _isValidãã£ãŒã«ããšisValidïŒïŒã¡ãœãããçšæãã解æã倱æããå Žåã¯æéãç¡å¹ã«èšå®ããŸãã
åèãŸã§ã«ãisValidïŒïŒã䜿çšãããŠããä»ã®ææžåãããå Žæã¯æ¬¡ã®ãšããã§ãã
https://github.com/moment/momentjs.com/search?utf8=%E2%9C%93&q=isValid
ã³ãŒãã§ã¯ãªãããã¥ã¡ã³ããžã®ãªã³ã¯ã¯æå³çãªãã®ã§ããããã³ãŒãã®èšåãé¢é£ããŠããŸãã
+1
解æãæåãããã©ããã確èªããæ©èœãéåžžã«å¿
èŠã§ãã
äžäœäºææ§ãæžå¿µãããå Žåã¯ãå
¥åãæ£ãããªãã strict
åŒæ°ãæå®ãããå Žåã«ã¹ããŒãããã¡ãœããDuration.parse(input: string, strict?: boolean = true): Duration
ãå°å
¥ã§ããå¯èœæ§ããããŸãã
ä»»æã®ããŒã¿ã«å¯ŸããŠãã¹ãŠãŒãã®DurationãååŸããŠãããšãã®çŸåšã®åäœã¯ãéåžžã«å¥åŠã§ãã
+1
ïŒè§£æãæåãããã©ããã確èªããããã«ïŒæéã«isValidïŒïŒã¡ãœããããããšäŸ¿å©ã§ã
ã¿ãªãããããã«ã¡ã¯.isValid
ã¡ãœããããããŸãã ããããããã¯ããªãå¯å€§ã§ãã @markstos @theazureshadowãªã©ããã²ãè©Šãããã ãããææ¡ãããã°ãç¥ãããã ããã
@marwahaha ã
æåã®ãã¹ããšããŠãäžèšã®äŸã®1ã€ãã³ããŒããŠè²Œãä»ããŸããã æåŸ ã©ããã«trueãŸãã¯falseãè¿ã代ããã«ãäŸå€ãã¹ããŒããŸãïŒã¢ãŒã¡ã³ã2.18.0ïŒã
moment.duration(3,'mintues').isValid();
ïŒäœæãããç¡å¹ãªæéã¯äŸå€ãã¹ããŒããã«ãæåãââããŸãããæå¹ãã©ããã確èªãããšäŸå€ãã¹ããŒãããŸãïŒïŒ
æ°ããã¡ãœããã®ããã¥ã¡ã³ãã¯ãŸã ãªãããã§ãããããããããã¯æå³ããã䜿çšæ³ã§ã¯ãããŸããã
@markstos Momentjs.comïŒ2.18.0ïŒã®ã³ã³ãœãŒã«ã§ãã®ã³ãŒããåé¡ãªãå®è¡ããŸããã 詳现ãæããŠããããŸããïŒ
ãããããè°äºé²ã®ã€ã¥ããééã£ãŠããããããã®ã³ãŒãã¯ç¡å¹ã§ããã¯ãã§ãã
2017幎3æ21æ¥14:35ããMaggiePintã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@markstoshttps ïŒ//github.com/markstosç§ã¯ã¡ããã©ãã®ã³ãŒããã§å®è¡ããŸãã
Momentjs.comã®ã³ã³ãœãŒã«ïŒ2.18.0ããïŒã¯åé¡ãããŸããã ããããŸãã
ããã«ã€ããŠã®è©³çŽ°ã¯ïŒâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moment/moment/issues/1805#issuecomment-288176838 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/ACbGmWIf24KlRs8oiS2wTn206iJNMod7ks5roBhfgaJpZM4CRuVM
ã
æéã¯ç¡å¹ã§ããã¹ãçç±ã¯ã@marwahaha @maggiepintããåãã®ã¹ãã«ãã¹ã§ãã
@ markstosMomentjs.comã®ã³ã³ãœãŒã«ã§ããã®äŸå€ãåçŸããããšã¯ã§ããŸããã ïŒãã ããçŸåšã¯2.18.1ã§ããïŒisValidãåŒã³åºãããšãã«äŸå€ãåçŸã§ããå Žåã¯ã詳现ãååŸã§ããŸããïŒ
ïŒæããã«ãããŒã¯ã¯ãã®ç¶æ³ã§isValid
ãfalse
isValid
ãè¿ãããšãæãã§ããŸããããããã¯äŸå€ãšã¯å¥ã®åé¡ã§ãããªããžã§ã¯ãå
¥åã§æå¹æ§ã®è§£æãã©ã®ããã«åŠçãããã¯ç§ã«ã¯100ïŒ
æçœã§ã¯ãããŸãããïŒ
2.18.1ã§ãäŸå€ãåçŸã§ããŸããã ããããããã¯èª€èŠå ±ã§ããã ãã®çš®ã®ç¡å¹ãªæéããisValidïŒïŒãã«å¯ŸããŠãtrueããè¿ããšãã@butterflyhugã®çµæãåçŸã§ããŸãã
ãã®å ŽåãçµæãšããŠèª€ã£ãŠæå¹ãªåºåãšããŠã0åããè¿ã代ããã«ã解æã倱æããã¹ãã§ã¯ãããŸãããïŒ
å¥ã®è³ªåã§ããå¿
èŠããããŸãããIIRCãè¡ãããšã¯ããã解éããããšã§ã
ãŠãããããŠãããããã·ã¥ããŒãã«ã«èŠã€ãããªããããããªç§åäœã®å€ã
ç¡å¹ã«ããå¿ èŠããããŸããïŒ ããããIMOã
2017幎3æ22æ¥åå8æ42åããMarkStosbergã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
2.18.1ã§ãäŸå€ãåçŸã§ããŸããã ããããããã¯èª€ãã§ãã
èŠå ±ã @butterflyhughttps ïŒ//github.com/butterflyhugãåçŸã§ããŸã
ãã®çš®ã®ç¡å¹ãªæéããtrueããè¿ãçµæ
ãisValidïŒïŒãããã®å Žåãã0åãããšããŠè¿ã代ããã«ã解æã倱æããã¹ãã§ã¯ãããŸããã
çµæãšããŠèª€ã£ãŠæå¹ãªåºåïŒâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moment/moment/issues/1805#issuecomment-288440827 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AFxi0nZAz8gwAJM8fVx5rYPyIWjeEfHMks5roUF4gaJpZM4CRuVM
ã
ããã«ãã°ãããããã§ãïŒ
æååãæå¹ã§ããããæéããããã«è¡šç€ºãããŠãããšæ³å®ãããŸãã ä¿®æ£ã¯ãæååãèšå®ããæå¹ãªå€ã§ããããšã確èªããããã«ãããã«ãã§ãã¯ãè¿œå ããããšã®ããã§ãã ããã§ãªãå Žåã¯ã _isValid:false
ãã®åäœã¯ãæšæºã®isValid
ã¡ãœãããšäžèŽããŠããŸãã
moment({'mintues': 3}).isValid()
> true
ãã®ãœãŒã¹ã¯normalizeObjectUnits
https://github.com/moment/moment/blob/497f918515ae6ab900f008f19523b1e4ae5e2450/src/lib/units/aliases.js#L14 -L29ã§ãæå¹ãªå±æ§ã®ã¿ãè¿œå ããŸãïŒãããŠåé¡ãåé€ããŸãïŒãã®ïŒã
@maggiepint @ichernevãã®åäœãå€æŽããå¿ èŠããããŸããïŒ éããªãææ°ãªãªãŒã¹ãè¡ããŸã...
ã3åããã0åãã«å€æããçµæããæå¹ããšå®£èšããã®ã¯ãã°ã§ãã ãããä¿®æ£ããããšã¯é倧ãªå€æŽãããããŸããããããã§ããã°ä¿®æ£ã§ãã
ãã®æ€èšŒåäœã¯çæ³çã§ã¯ãªãããšã«åæããŸããããããå¿ ããããã°ã§ããããšã«åæããŸããã
moment({'minutes': 3, '$cacheKey': 92619502}).isValid()
ãããªãã®ã解æããå ŽåãèããŠã¿ãŸãããã ãã®è§£æãæå¹ãªç¬éãšããŠè©äŸ¡ããŠããããŠãŒã¶ãŒãããããšã匷ãæåŸ
ããŠããŸãããã®äŸãšããªããæžãããã°ãšã®éã«ååçãªéãã¯èŠãããŸããã
ããã§èª¬æããŠããAPIã¯ã moment
ã³ã³ã¹ãã©ã¯ã¿ãŒã®ããªããžã§ã¯ãããŒãµãŒãã§ããããã«ã€ããŠã¯ã以äžã§èª¬æããŠããŸãã
http://momentjs.com/docs/#/parsing/object/
ããã¥ã¡ã³ãã¯çŸåšãæªç¥ã®ãŸãã¯è¿œå ã®åŒæ°ãæž¡ãããšã®æ±ãã«ã€ããŠæ²é»ããŠããŸãã
çŸåšãããã§ã®Momentã®åäœã¯ããGarbage InãGarbageoutããšããŠèª¬æã§ããŸãã ã¬ããŒãžå ¥åã¯ãµã€ã¬ã³ãã«åãå ¥ããããçµæã¯ãã¬ããŒãžã¢ãŠããã«ãªããŸããã¹ãã«ãã¹ã®ããæ¥ä»ã¯ä»ã®æ¥ä»ã«å€æãããæå¹ãšèŠãªãããŸãã
ãããã®æŽæ°ã«ãããéçºè ã¯ééããç¯ããããšãã§ããã ãæ©ãèŠã€ããããšãã§ããŸãã
MomentããGarbageInããæå¹ãšããŠåãå ¥ãç¶ããéããããã¯éçºè ã«ãšã£ãŠäžå©çã§ããç¶ãããŠãŒã¶ãŒã¯ãå£ããæ¥ä»ããæå¹ãã§ãããšèª€ã£ãŠå ±åããMomentãæ®ãããŸãã
ãã®æ¹åã¯ããç Žå£çãªãå€æŽã®äŸ¡å€ãããããã§ãã
ç§ã¯ããã«åãŸããŸããïŒ moment().subtract('1 day')
...ããã¯æéãè¡šãæå¹ãªæ¹æ³ã§ã¯ãããŸããã ãã ãã .subtract(0)
ãšåçã«ãªããšã¯æããŸããã IMOããã®å Žåã«è¡ãæãé©ãã¹ãããšã¯æããããšã§ãã
@johnvhç§ã¯å®å šã«åæããŸãã
ããããæéãè¡šçŸããæå¹ãªæ¹æ³ãã§ã¯ãªãããšãç¥ã£ãŠããŸããããšã«ãããã®ã³ãŒããèšè¿°ããŸããïŒ äœãæåŸ ããŸããïŒ ç§ã¯ããªãããããmomentjsã®äœè ãæäŸããåªããããã¥ã¡ã³ãããæéãè¡šçŸããããã®æå¹ãªæ¹æ³ã§ã¯ãªãã£ãããšãç解ãããšæããŸããïŒ
25/04/2017ã§ã¯ãåå8æ29åã§ãããŒã¯Stosbergã®[email protected]ã¯æžããŸããïŒ
@johnvhç§ã¯å®å šã«åæããŸãã
â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŠãã ããã
@simonfoxã®éçºè ã¯äººéã§ãã ç§ãã¡ã¯ééããç¯ããŸãã ãã®ãããã³ãŒãããŒã¹ã®ååã¯ãã¹ãã§ãã Momentã®ããã¥ã¡ã³ãã¯/ is /åªããŠããŸãããAPIãæ£ããèŠããŠããŠãããã¥ã¡ã³ããåç §ããå¿ èŠããªããšæãããå Žåã¯åœ¹ã«ç«ã¡ãŸããã ãã®ãããåªããããã¥ã¡ã³ãã ãã§ãªããç¡å¹ãªå ¥åãå£ãããæå¹ãªãå ¥åã«ãµã€ã¬ã³ãã«å€æããã®ã§ã¯ãªããç¡å¹ãªå ¥åã§å€±æããã³ãŒããçšæããŠãããšäŸ¿å©ã§ãã @johnvhãã³ãŒãã®å®è¡æã«æ€èšŒã®å€±æãããã«åãåã£ãå Žåã圌ã¯åªããããã¥ã¡ã³ãããã§ãã¯ããŠãåé¡ãäœã§ãããã確èªã§ããã¯ãã§ãã æ®å¿µãªãããMomentã¯ç¡å¹ãªå ¥åãæå¹ãªãã®ãšããŠæ±ããã¢ã©ãŒã ãªãã«çºçããŸããã
@markstosæ£ç¢ºã«ã ç§ã¯100ïŒ åæããŸãã
ããã¯è¿œè·¡ããªããã°ãªããªããã°ã§ããã ãã¡ããç¡å¹ã§ããããšãç¥ã£ãŠããã®ããã«æžããããã§ã¯ãããŸããã ã¢ãŒã¡ã³ãæäœã¡ãœããã¯ããµããŒããããŠããã·ã°ããã£ã§éåžžã«èªç±ã§ãããããæ£ããèŠããŸãã ãŸããåããããžã§ã¯ãã§ã¢ãžã§ã³ãã䜿çšããŸãããã®ãããžã§ã¯ãã§ã¯ãèªç¶èšèªãæéã«å€æããããã«äººéã®ééã䜿çšããŸãã ãããã£ãŠããã®ãããªãã®ã¯1è¡ã ãé¢ããŠããŸãã
moment().subtract('1 day');
agenda.processEvery('1 day');
åŸè ã¯æå³ãããšããã«æ©èœããŸãããåè ã¯æ©èœããŸããã åè ãäŸå€ãæèµ·ããå Žåãããã¯ç§ãã¡ã®éã¡ãèŠåããŠããã§ãããã
ãŸããMoment / has / isValidïŒïŒã¡ãœããã¯ãå€ãæå¹ãŸãã¯ç¡å¹ãšããŠæ€èšŒããããšãæå³ããŸãã ç¡å¹ãªå€ãæå¹ãšããŠåé¡ãããå Žåã isValid()
ã¡ãœããã¯ææžåãããŠããããã«æ©èœããªãããã«èŠããŸãã
ã¿ãªãããããã«ã¡ã¯ããã®åéã®PRã確èªããããšæããŸãã
ç§ã¯ãã®ãã°ããŸãã¯ããã«é¡äŒŒãããã®ã«ééããŸããã Moment2.18.1ã䜿çšããŠmoment.duration('3', 'minutes').asMinutes()
ãå®è¡ãããšãçµæã¯0ã«ãªããŸãã3ãè¿ãããäŸå€ãã¹ããŒããå¿
èŠããããšæããŸãã å°ãªããšãã moment.duration('3', 'minutes').isValid()
ã¯false
ãè¿ãå¿
èŠããããŸãã
ããã§äœäººãã®äººã ãèšåããŠããããã«ãMomentã®çŸåšã®åäœã¯ãæ€åºãšèšºæãé£ãããã°ãåŒãèµ·ããããšã«ãã£ãŠå€ãã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
ããã¯å¯ŸåŠãããŸãããïŒ
@TomJSmithç°¡åãªãã¹ãã§ã¯ããã°ããŸã ååšããŠããããšã瀺ãããŠããŸãã ãã®ã³ãŒãïŒ
moment().subtract('1 day');
ãæåãããäºæ³ã©ãã1æ¥ã§ã¯ãªã0æ¥ãæžç®ããŸãã çµæã®æ¥ä»ã«.isValid()
ãåŒã³åºããŠãçµæãæå¹ã§ãªãå Žåã§ãçµæãæå¹ã§ããããšã瀺ãtrue
å¿çãè¿ãããšãã§ããŸãã
çŸåšã®åäœã¯ãäžéšã®ãŠãŒã¹ã±ãŒã¹ã§æªãçµæã«ã€ãªããå¯èœæ§ããããããèŠåãšãšãã«æ確ã«ææžåããå¿ èŠããããŸãã
䜿çšäºäŸ
ä¿ææéã«åºã¥ããŠãªãœãŒã¹ãåé€ãããïŒ
const duration = moment.duration('invalid');
const currentDate = moment();
const removeBeforeDate = moment().subtract(duration);
console.log(`currentDate : ${currentDate}`);
console.log(`removeBeforeDate : ${removeBeforeDate}`);
çµæïŒ
currentDate : Fri Apr 13 2018 13:15:04 GMT+0200
removeBeforeDate : Fri Apr 13 2018 13:15:04 GMT+0200
çµæïŒ
çŸåšã®æ¥ä»ãŸã§ã®ãã¹ãŠã®ãªãœãŒã¹ãåé€ãããŸã...
ãããŸã§ã®ãšããã解æåŸã«å€ããã¹ãããå Žåã«ãããåé¿ããããã«ç§ãèŠã€ããå¯äžã®æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
const duration = moment.duration('invalid');
if (duration.toISOString() === 'P0D') {
// throw an Error
}
ã¯ãããã®ãã°ã¯ã²ã©ãã2014幎ããéããŠããŸããããã¯ãdate-fnsããããžã§ã¯ããæ£ããè¡ããã®ã§ãã å®éã«ã¯ãç¡å¹ãªå ¥åãç¡å¹ãã©ãããããããŸãã https://date-fns.org/æ®å¿µãªãããdate-fnsã¯ã¿ã€ã ãŸãŒã³å€æãåŠçããŸããããå€éšã©ã€ãã©ãªã䜿çšããŠããããåŠçããæ¹æ³ããããããããŸããã
Momentãããžã§ã¯ãã§ãããä¿®æ£ããã«ã¯ãã¬ããŒãžå ¥åã®åãå ¥ããçµäºãããããæå¹ãªæ¥ä»ãšããŠæ±ãå¿ èŠããããŸãã ããã¯ããè¯ãåäœã®ããã«èŠããŸãããæè¡çã«ã¯ãåŸæ¹ç Žå£åäœãã®å€æŽã§ãããããå€æŽãè¡ãããšã«ã¯æµæãããããã§ãã ãããããã®ãããžã§ã¯ããéå»4幎éè¡åãèµ·ãããŠããªãããšãèãããšãããã«ä¿®æ£ããããšã¯æããŸããã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
moment 2.23.0
ã䜿çšãããšãç¡å¹ãªISO8601æååããæéãäœæããããšãããšã isValid()
é¢æ°ãtrue
è¿ããŸãã
äŸïŒ
const mom = moment.duration('asdf')
console.log(mom.isValid()) // This returns true, expected would be false
ãã®ã¡ãã£ãšè¿·æãªã€ã¢ã ãããŠã Duration
ãªããžã§ã¯ãã®isValid()
é¢æ°ã®ç®çãå®å
šã«ç¡å¹ã«ããŸãïŒ isValid()
ãfalse
è¿ãå ŽåããããŸããããã¯ãã¢ãŒã¡ã³ããç¡å¹ãªãã®ã§ãã解éããããã§ããå
¥åïŒïŒ
@robbieclosetæŽæ°ã¯ã4æã®ååã®æ皿以éããdate-fnsããããžã§ã¯ãã®ã¿ã€ã ãŸãŒã³ãµããŒããæ¹åãããŸããã çŸåšããããæ¯æŽãããdate-fns-timezoneãããã³ãdate-fns-tzããããžã§ã¯ãããããŸãã
åãæ¿ããå¯èœãªå Žåã¯ã䜿çšãæ€èšããŸãã
moment.duration(value).toISOString() === value
ã䜿çšããŸãããã®å€ã¯ãæ§æããèªã¿åãããŸãã
moment.durationïŒvalueïŒ.toISOStringïŒïŒ=== valueã䜿çšããŸãããã®å€ã¯ãæ§æããèªã¿åãããŸãã
@ bors-ltdåé¡ã®äžéšã¯ãåããšã³ã³ãŒããããå€ãçæãã2ã€ã®å€ãã¢ãŒã¡ã³ãããã³ãŒãã§ããå¯èœæ§ãããããšã ãšæããŸãã
äŸïŒ moment.duration('PT0M0S').toISOString() === moment.duration('PT0S').toISOString()
ã
ãã¹ããèŠããšãç¡å¹ãªå€ã¯å®éã«ã¯ä»æ§ã®äžéšã§ããããã«èŠããŸãã
https://github.com/moment/moment/blob/2.24.0/src/test/moment/duration.js#L419 -L420
ISOæéæšæºã«äžèŽããªããã¿ãŒã³ã¯ãã0ãç§ãšããŠãã¹ããããŠããŸãã
ããã«ã¡ã¯ã isValid()
ã¡ãœããã§ãåãåé¡ãçºçããæåã§å®è¡ããããšã«ãªããŸããã
const isValidDuration = duration => {
return !!duration.match(
/^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/
);
};
ããã誰ã«ã§ã圹ç«ã€ããšãé¡ã£ãŠããŸãã
https://momentjs.com/docs/#/ -project-status /ãåç §ããŠ
ããã§ã®ãã¹ãŠã®è°è«ã«æè¬ããŸãã
ããããŒãªä¿®æ£ã¯ãisValidã¡ãœããããããŒã¿éšåã®åèšã0ãã倧ããïŒãŸãã¯å°ãªããšãç¡å¹ã§ããå¯èœæ§ãé«ãïŒããšãä¿èšŒããã¡ãœããã«çœ®ãæããããšã§ãã
æãåèã«ãªãã³ã¡ã³ã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
moment 2.23.0
ã䜿çšãããšãç¡å¹ãªISO8601æååããæéãäœæããããšãããšãisValid()
é¢æ°ãtrue
è¿ããŸããäŸïŒ
ãã®ã¡ãã£ãšè¿·æãªã€ã¢ã ãããŠã
Duration
ãªããžã§ã¯ãã®isValid()
é¢æ°ã®ç®çãå®å šã«ç¡å¹ã«ããŸãïŒisValid()
ãfalse
è¿ãå ŽåããããŸããããã¯ãã¢ãŒã¡ã³ããç¡å¹ãªãã®ã§ãã解éããããã§ããå ¥åïŒïŒ