node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

@philipyoungg/calendar

calendar.js

works in browser and node environment

a function that returns chosen month in array

Motivation

A bare minimum calendar that could be used to render UI from the array. I made this to create a bare bone month view for my personal project in React

react components coming soon

How to use

// if no arguments provided, the function defaults to current month and year 
var config = {
    month: 8,
    year: 2016,
    startDay: 0 // equivalent to Sunday 
}
var cal = calendar(config);
console.log(cal)
// { 
//  data: [ 
//    [1, 2, 3, 4, 5, 6, 7], 
//    [8, 9, 10, 11, 12, 13, 14], 
//    [15, 16, 17, 18, 19, 20, 21], 
//    [22, 23, 24, 25, 26, 27, 28], 
//    [29, 30, 31, 0, 0, 0, 0] 
//  ], 
//  dayNumber: [1, 2, 3, 4, 5, 6, 0], 
//  month: 8, 
//  startDay: 0, 
//  year: 2016 
// } 
  • data is an array which contains an array in week
  • dayNumber is day in number format. 0 is Sunday, 6 is Saturday. Used if you want to render the day header in month view
  • month is the current month
  • year is the current year
  • startDay is the start day in number format

with moment.js you could convert numeral value to readable day format.

example
// cal.month = 08 
moment(cal.month, 'M').format('MMMM') // August 
 
// cal.dayNumber = [1, 2, 3, 4, 5, 6, 0] 
var dayName = cal.dayNumber.map(function(day) {
    return moment(day, 'd').format('dddd')
})
 
console.log(dayName) // ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

API

pass object to the function

month
// Pass the month in number format (1 = January to 12 = December) 
// default to current Month 
var cal = calendar({
    month: 1 // January. 
});
year
// Pass the year in number format 
// default to current Year 
var cal = calendar({
    year: 2016
});
startDay
// Pas the day in number format (0 = Sunday to 6 = Saturday) 
// default to Monday (1) 
var cal = calendar({
    startDay: 6 // month view start in Saturday 
});