Moment.js (edit)
1) Để có được ngày và giờ hiện tại, chỉ cần gọi moment () mà không có tham số:
moment();
2) Nếu bạn biết định dạng của một chuỗi đầu vào, bạn có thể sử dụng nó để phân tích một thời điểm:
moment("12-25-1995", "MM-DD-YYYY");
3) Format
moment().format("YYYY Do MM");
moment().format(‘DD/MM/YYYY HH:mm’);
4) Bạn có thể tạo Moment với đối tượng Javascript Date native sẵn có:
var day = new Date(2019, 07, 15);
var d = moment(day);
5) Moment.js sử dụng overload getters, setters:
moment().year();
moment().month();
moment().date();
moment().hour();
moment().minute();
moment().second();
moment().millisecond();
6) Get số ngày trong tháng hiện tại:
moment().daysInMonth();
moment("2012-02", "YYYY-MM").daysInMonth() // 29
moment("2012-01", "YYYY-MM").daysInMonth() // 31
7) Array: Bạn có thể tạo ra một moment với một mảng các con số phản chiếu các tham số được truyền đến new Date() [year, month, day, hour, minute, second, millisecond]
moment().toArray(); // [2013, 1, 4, 14, 40, 16, 154];
8) Bạn cũng có thể manipulating dates bằng các hàm add, subtract...
moment().add(7, 'days');
moment().subtract(7, 'days');
years y
quarters Q
months M
weeks w
days d
hours h
minutes m
seconds s
milliseconds ms
9) Tham khảo thêm tại đây:
https://viblo.asia/p/gioi-thieu-ve-momentjs-63vKjnwAK2R
https://ehkoo.com/bai-viet/nhung-thu-vien-xu-ly-ngay-thang-trong-javascript
10) Hạn chế
https://luubinhan.github.io/blog/2019-03-17-vi-sao-ban-ko-nen-xai-moment-js/
const startedAt = moment()
const endedAt = startedAt.add(1, 'year')
console.log(startedAt) // > 2020-02-09T13:39:07+01:00
console.log(endedAt) // > 2020-02-09T13:39:07+01:00
startedAt, endedAt đều là mutable (có thể thay đổi), rõ ràng chúng ta không muốn giá trị của startedAt bị thay đổi sau khi gọi hàm add
11) Cách giải quyết
const startedAt = moment()
const endedAt = moment(startedAt).add(1, 'year')
Khi dùng Moment.js luôn nhớ dùng cách này để tạo một instance mới
12) Kiểm Thử
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://momentjs.com/downloads/moment.min.js"></script>
<script>
$(function(){
var dt = new Date(2019, 07, 15, 0, 0, 0, 0);
alert(moment(dt).format("YYYY-MM-DD"));
});
</script>
</head>
<body>
</body>
</html>