Chcę przeanalizować następujący ciąg z momentem.js 2014-02-27T10: 00: 00 i wyjściem dzień miesiąc rok (14 marca 2014) Czytałem dokumenty, ale bez powodzenia http://momentjs.com/docs/# / parsing / now /
Chcę przeanalizować następujący ciąg z momentem.js 2014-02-27T10: 00: 00 i wyjściem dzień miesiąc rok (14 marca 2014) Czytałem dokumenty, ale bez powodzenia http://momentjs.com/docs/# / parsing / now /
Odpowiedzi:
Musisz użyć .format()
funkcji.
MM
- Numer miesiąca
MMM
- Słowo miesiąca
var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY');
var dateMonthAsWord = moment("2014-02-27T10:00:00").format('DD-MMM-YYYY');
"01-02-2017"
, „2 stycznia” czy „1 lutego”? Momentjs nie może czytać w twoich myślach.
Wydaje mi się, że zawsze ląduję tutaj tylko po to, aby zdać sobie sprawę, że tytuł i pytanie nie są do końca zgodne.
Jeśli chcesz datować moment z łańcucha :
const myMoment = moment(str, 'YYYY-MM-DD')
Od chwili dokumentacji :
Zamiast modyfikować natywny Date.prototype, Moment.js tworzy opakowanie dla obiektu Date.
Jeśli zamiast tego chcesz otrzymać obiekt Date w javascript z łańcucha :
const myDate = moment(str, 'YYYY-MM-DD').toDate();
Nie ma potrzeby, aby moment.js analizował dane wejściowe, ponieważ jego format jest standardowy:
var date = new Date('2014-02-27T10:00:00');
var formatted = moment(date).format('D MMMM YYYY');
NaN
.
Date.parse
dzwoni new Date
, więc nie powinno to robić różnicy.
moment był idealny na to, czego potrzebowałem. UWAGA, ignoruje godziny i minuty i po prostu robi swoje, jeśli na to pozwolisz. To było dla mnie idealne, ponieważ moje wywołanie API przywraca datę i godzinę, ale obchodzi mnie tylko data.
function momentTest() {
var varDate = "2018-01-19 18:05:01.423";
var myDate = moment(varDate,"YYYY-MM-DD").format("DD-MM-YYYY");
var todayDate = moment().format("DD-MM-YYYY");
var yesterdayDate = moment().subtract(1, 'days').format("DD-MM-YYYY");
var tomorrowDate = moment().add(1, 'days').format("DD-MM-YYYY");
alert(todayDate);
if (myDate == todayDate) {
alert("date is today");
} else if (myDate == yesterdayDate) {
alert("date is yesterday");
} else if (myDate == tomorrowDate) {
alert("date is tomorrow");
} else {
alert("It's not today, tomorrow or yesterday!");
}
}
Może wypróbuj wypełnienie Intl dla IE8 lub usługę olyfill?
lub
let startDate = "2019-01-16T20:00:00.000";
let endDate = "2019-02-11T20:00:00.000";
let sDate = new Date(startDate);
let eDate = new Date(endDate);
startDate = moment(sDate);
endDate = moment(eDate);
var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);
Daje nieprawidłowy błąd daty ?????