moment(value)
рд▓рд┐рдП рдПрдХ рдордирдорд╛рдирд╛ рдорд╛рди рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ #1407 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдерд╛ рд▓реЗрдХрд┐рди рджрд┐рдирд╛рдВрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдП рдмрд┐рдирд╛ред рдЕрдм рддрдХ рдореИрдВрдиреЗ рдЬреЛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рдХрд╛рдлреА рдмреЗрдХрд╛рд░ рд╣реИ:
if (moment.isDate(value)) {
return moment(value);
} else {
return moment(value, moment.ISO_8601);
}
рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рдЕрднреА рднреА ASP.net /Date(1198908717056)/
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рджреЛ-рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдЦреНрдд рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛: moment(value, true)
ред
рдзрдиреНрдпрд╡рд╛рджред
рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдлрд╝реЙрд▓-рдмреИрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ - рд╕рдЦреНрдд рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рд╣реИ рдирд╛?
рд╣рд╛рдВ, рдореИрдВ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ moment()
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рд╕рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдФрд░ Date
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдорд╛рдиреНрдп рддрд┐рдерд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗред
рдореИрдВ moment
рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдСрдкреНрдЯ-рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдкрджрд╛рд╡рдирдд Date
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝реЙрд▓рдмреИрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдЦреНрдд рдореЛрдб рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм moment(value, 'YYYY-MM-DD')
рдЬреИрд╕реЗ рд╕рдЯреАрдХ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 1. рдпрд╣ рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╡рд░реНрдмреЛрдЬрд╝ рд╣реИ рдФрд░ 2. рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╕рднреА рдкреНрд░рд╛рд░реВрдк рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ moment(value)
Date
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд░рд┐рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ true
рдкрд╛рд╕ рдХрд░рдХреЗ рд╕рдЦреНрдд рдореЛрдб рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдбреЙрдХреНрд╕ рдореЗрдВ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ _exactly_ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЪреВрдВрдХрд┐ moment(String)
рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рд╕рдорд░реНрдерд┐рдд рдкреНрд░рд╛рд░реВрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдЦреНрдд рдореЛрдб рдХреЗ рд╕рдорд╛рди рд╣реА рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, moment(String, Boolean)
рдЬреЛрдбрд╝рдирд╛ред
рд╣рд╛рдБ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рджред
@SystemParadox рд╣рд╛рдБ, рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЖрдк рдмрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВ moment.createFromInputFallback(config)
:
moment.createFromInputFallback = function (config) {
config._d = new Date(NaN);
}
рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рдореВрд▓реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ ;-)
рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдХреЛрдбрдмреЗрд╕ рдПрдХ рдХреЙрд▓ рдХреЛ рдЙрддреНрддрд░реЛрддреНрддрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ?
рд╣рдо рдХреЗрд╡рд▓ moment(String, true)
рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ?
рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛, рдЬрдмрдХрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рд░рдЦрдиреЗ рд╕реЗ рдХрдИ рддрд░рд╣ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред #2535 рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб-рдЗрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред
рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ рдкрд▓ред JS_DATE рд╕реНрдерд┐рд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╕ рдЗрдирдкреБрдЯ рдХреЛ new Date
, https://github.com/moment/moment/issues/1686 рджреЗрдЦреЗрдВред рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ред
@SystemParadox рдпрджрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдШрд╛рдпрд▓ рд╣реЛ рдЧрдпрд╛:
function disableNativeDateFallback(config) {
config._d = new Date(parseFloat('NaN')); // an invalid date
}
function makeMomentWrapper(momentFn) {
return function() {
var prevFallback = moment.createFromInputFallback;
moment.createFromInputFallback = disableNativeDateFallback;
var result = momentFn.apply(null, arguments);
moment.createFromInputFallback = prevFallback;
return result;
}
};
var momentStrict = makeMomentWrapper(moment);
momentStrict.utc = makeMomentWrapper(moment.utc);
рд╡реЗ createFromInputFallback
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрджрд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ momentStrict
рдФрд░ momentStrict.utc
рдХреЗ рдмрдЬрд╛рдп moment
рдФрд░ moment.utc
рдФрд░ рдмрд╛рдХреА рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рд╣реИ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@SystemParadox рдпрджрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдШрд╛рдпрд▓ рд╣реЛ рдЧрдпрд╛:
рд╡реЗ
createFromInputFallback
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрджрд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВmomentStrict
рдФрд░momentStrict.utc
рдХреЗ рдмрдЬрд╛рдпmoment
рдФрд░moment.utc
рдФрд░ рдмрд╛рдХреА рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рд╣реИ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред