API Docs for: 0.2
Show:

JC.LunarCalendar Class

农历日历组件
全局访问请使用 JC.LunarCalendar 或 LunarCalendar

require: jQuery , JC.BaseMVC

JC Project Site | API docs | demo link

DOM 加载完毕后
会自动初始化页面可识别的node, 目前可识别: div.js_LunarCalendar, td.js_LunarCalendar, li.js_LunarCalendar
Ajax 加载内容后, 如果有日历组件需求的话, 需要手动初始化 JC.LunarCalendar.init( _selector );

可用的 HTML attribute

clcDate = date string
设置日历的默认日期
minvalue = date string
设置日历的有效最小选择范围, 格式YYYY-mm-dd
maxvalue = date string
设置日历的有效最大选择范围, 格式YYYY-mm-dd
hidecontrol = bool, default = false
是否隐藏日历将操作控件
nopreviousfestivals = bool, default = false
不显示上个月的节日
nonextfestivals = bool, default = false
不显示下个月的节日
clcSelectedItemCb = function, window变量域
选择日期时触发的回调
function clcSelectedItemCb1( _date, _td, _a ){
   var _ins = this;
   JC.log( _date );
}

Constructor

JC.LunarCalendar

(
  • _selector
  • _date
)

Parameters:

  • _selector Selector

    指定要显示日历的选择器, 如果不显示指定该值, 默认为 document.body

  • _date Date

    日历的当前日期, 如果不显示指定该值, 默认为当天

Methods

_init

() private

LunarCalendar 内部初始化

comment

(
  • _td
  • _customSet
)
static

添加或者清除注释

Parameters:

  • _td Selector

    要设置注释的 td

  • _customSet String | Bool

    如果 _customSet 为 undefined, 将清除注释. 如果 _customSet 为 string, 将添加注释

commentTitle

(
  • _td
  • _title
)
static

把注释添加到 a title 里

Parameters:

  • _td Selector

    要设置注释的 a 父容器 td

  • _title String | Undefined

    如果 _title 为真, 将把注释添加到a title里. 如果 _title 为假, 将从 a title 里删除注释

getAllDate

() Object

获取所有的默认时间对象

Returns:

Object:

{ date: 默认时间, minvalue: 有效最小时间 , maxvalue: 有效最大时间, beginDate: 日历的起始时间, endDate: 日历的结束时间 }

getComment

(
  • _td
)
String static

返回 td 的注释

Parameters:

  • _td Selector

Returns:

getContainer

()

获取初始化日历的选择器对象

Returns:

selector

getDate

() Date

获取默认时间对象

Returns:

Date:

getFestivals

(
  • _lunarDate
  • _greDate
)
static

返回农历和国历的所在日期的所有节日
假日条目数据样例: { 'name': '春节', 'fullname': '春节', 'priority': 8 }
返回数据格式: { 'dayName': 农历日期/节日名, 'festivals': 节日数组, 'isHoliday': 是否为假日 }

Parameters:

  • _lunarDate Object

    农历日期对象, 由JC.LunarCalendar.gregorianToLunar 获取

  • _greDate Date

    日期对象

Returns:

Object

getItemByTimestamp

(
  • _tm
)
Selector | Undefined static

从时间截获取选择器对象

Parameters:

  • _tm Int

    时间截, 如果时间截少于13位, 将自动补0到13位, ps: php时间截为10位

Returns:

Selector | Undefined:

td selector, 如果 td class unable 不可选, 将忽略

getLayout

()

获取日历的主选择器对象

Returns:

selector

getSelectedDate

() Date

获取当前选中的日期, 如果用户没有显式选择, 将查找当前日期, 如果两者都没有的话返回undefined

Returns:

Date:

getSelectedDateGlobal

() Date | Undefined static

从所有的LunarCalendar取得当前选中日期的日期对象
如果用户没有显式选中某个日期, 将尝试获取当前日期, 如果两者都没有返回undefined

Returns:

Date | Undefined:

getSelectedItemGlobal

() Object | Undefined static

从所有的LunarCalendar取得当前选中的日期
如果用户没有显式选中某个日期, 将尝试获取当前日期, 如果两者都没有返回undefined

Returns:

Object | Undefined:

如果能获取到选中的日期将返回 { date: 当天日期, item: 选中的a, td: 选中的td }

gregorianToLunar

(
  • _date
)
static

从公历日期获得农历日期
返回的数据格式

       {
           shengxiao: ''   //生肖
           , ganzhi: ''    //干支
           , yue: ''       //月份
           , ri: ''        //日
           , shi: ''       //时
           , year: ''      //农历数字年
           , month: ''     //农历数字月
           , day: ''       //农历数字天
           , hour: ''      //农历数字时
       };

Parameters:

  • _date Date

    要获取农历日期的时间对象

Returns:

Object

holiday

(
  • _td
  • _customSet
)
static

添加或者清除假日样式

Parameters:

  • _td Selector

    要设置为假日状态的 td

  • _customSet Any

    如果 _customSet 为 undefined, 将设为假日. 如果 _customSet 非 undefined, 那么根据真假值判断清除假日/添加假日

init

(
  • _selector
)
Array of LunarCalendarInstance static

初始化可识别的 LunarCalendar 实例

Parameters:

  • _selector Selector

Returns:

Array of LunarCalendarInstance:

isComment

(
  • _td
)
Bool static

判断 td 是否为注释状态

Parameters:

  • _td Selector

Returns:

Bool:

isHideControl

()

判断日历是否隐藏操作控件

Returns:

bool

isHoliday

(
  • _td
)
Bool static

判断 td 是否为假日状态

Parameters:

  • _td Selector

Returns:

Bool:

isWorkday

(
  • _td
)
Bool static

判断 td 是否为工作日状态

Parameters:

  • _td Selector

Returns:

Bool:

JC.LunarCalendar.getFestival.intPad

(
  • _n
  • _len
)
String private static

为数字添加前置0

Parameters:

  • _n Int

    需要添加前置0的数字

  • _len Int

    需要添加_len个0, 默认为2

Returns:

nextMonth

()

显示下一个月的日期

nextYear

()

显示下一年的日期

on

(
  • _evtName
  • _cb
)

使用 jquery on 绑定事件

Parameters:

Returns:

BaseMVCInstance

preMonth

()

显示上一个月的日期

preYear

()

显示上一年的日期

trigger

(
  • _evtName
)

使用 jquery trigger 触发绑定事件

Parameters:

Returns:

BaseMVCInstance

update

(
  • _date
)

更新日历视图为自定义的日期

Parameters:

  • _date Date

    更新日历视图为 _date 所在日期的月份

updateStatus

(
  • _data
)
static

从JSON数据更新日历状态( 工作日, 休息日, 注释 )
注意, 该方法更新页面上所有的 LunarCalendar

Parameters:

  • _data Object

    { phpTimestamp:{ dayaction: 0|1|2, comment: string}, ... }

          
             dayaction: 
             0: delete workday/holiday
             1: workday
             2: holiday
    

Example:

 LunarCalendar.updateStatus(  {
                                       "1369843200": {
                                           "dayaction": 2,
                                           "comment": "dfdfgdsfgsdfgsdg<b></b>'\"'asdf\"\"'sdf"
                                       },
                                       "1370966400": {
                                           "dayaction": 0,
                                           "comment": "asdfasdfsa"
                                       },
                                       "1371139200": {
                                           "dayaction": 1
                                       },
                                       "1371225600": {
                                           "dayaction": 0,
                                           "comment": "dddd"
                                       }
                                   });

workday

(
  • _td
  • _customSet
)
static

添加或者清除工作日样式

Parameters:

  • _td Selector

    要设置为工作日状态的 td

  • _customSet Any

    如果 _customSet 为 undefined, 将设为工作日. 如果 _customSet 非 undefined, 那么根据真假值判断清除工作日/添加工作日

Properties

_model

private

LunarCalendar 的数据模型对象

_view

private

LunarCalendar 的视图对像

autoinit

Bool static

设置是否在 dom 加载完毕后, 自动初始化所有日期控件

Default: true

commentSeparator

String static

用于分隔默认title和注释的分隔符

Default: ==========comment==========

defaultYearSpan

Int static

设置默认显示的年份数, 该数为前后各多少年 默认为前后各10年

Default: 20

tpl

String static

自定义日历组件模板

如果用户显示定义JC.LunarCalendar.tpl的话, 将采用用户的模板

Default: empty

Events

CLCSelectedItem

选择日期时触发的事件