简体中文版,浏览器支持 ie9+ (ie8未经测试过)
fork from http://adphorus.github.io/react-date-range
$ npm install --save beyond-datetime
日期选择器
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { Calendar } from 'beyond-datetime';
class MyComponent extends Component {
handlerSelect(date){
console.log(date); // Date object
}
render(){
return (
<div>
<Calendar onChange={this.handlerSelect} />
</div>
)
}
}
class MyComponent extends Component {
handlerSelect(date){
console.log(date); // Momentjs object
}
render(){
return (
<div>
<Calendar time onChange={this.handlerSelect} />
</div>
)
}
}
const invalidDates = (date)=>{
let today = new Date
today.setHours(0)
today.setMinutes(0)
today.setSeconds(0)
today.setMilliseconds(0)
return +date < +today
}
class MyComponent extends Component {
render(){
return (
<div>
<Calendar invalidDates={invalidDates} />
</div>
)
}
}
class MyComponent extends Component {
constructor(props){
super(props)
this.state = {
date : new Date
}
}
handlerChange(date){
this.setState({date})
return false // 返回false 阻止 Calendar 组件内部刷新
}
render(){
return (
<div>
<Calendar date={this.state.date} onChange={this.handlerChange.bind(this)} />
</div>
)
}
}
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
defaultDate | Date | 设定默认日期值 | - |
date | Date | 设定日期值 | - |
onChange | Function | 改变日期/时间事件 | - |
onConfirm | Function | 通过确定按钮改变日期/时间事件 | - |
invalidDates | Function | 禁止选择的日期 | - |
confirm | boolean | 显示确定按钮 | - |
time | boolean | 是否显示时间选择 | false |
second | boolean | 是否显示秒选择 | true |
timeFilter | Array/Function | 时间过滤 | - |
language | string ('en','cn') | 时间过滤 | 'cn' |
日期范围选择器
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { DateRange } from 'beyond-datetime';
class MyComponent extends Component {
handlerSelect(range){
console.log(range.startDate,range.endDate);
}
render(){
return (
<div>
<DateRange onChange={this.handlerSelect}/>
</div>
)
}
}
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { DateRange,defaultRanges } from 'beyond-datetime';
class MyComponent extends Component {
handlerSelect(range){
console.log(range.startDate,range.endDate);
}
render(){
return (
<div>
<DateRange ranges={defaultRanges} onChange={this.handlerSelect} />
</div>
)
}
}
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { DateRange,defaultRanges } from 'beyond-datetime';
const filter = ()=> [[0,3,6,9,12,15,18,21],[0,15,30,45,60],[0,15,30,45,60]]
class MyComponent extends Component {
handlerSelect(range){
console.log(range.startDate,range.endDate);
}
render(){
return (
<div>
<DateRange timeFilter={filter} ranges={defaultRanges} onChange={this.handlerSelect} />
</div>
)
}
}
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
defaultStartDate | Date | 设定默认的开始日期值 | - |
defaultEndDate | Date | 设定默认的结束日期值 | - |
startDate | Date | 设定开始日期值 | - |
endDate | Date | 设定结束日期值 | - |
onChange | Function | 改变日期/时间事件 | - |
onConfirm | Function | 通过确定按钮改变日期/时间事件 | - |
ranges | Array | 快捷的日期范围选择 | - |
invalidDates | Function | 禁止选择的日期 | - |
time | boolean | 是否显示时间选择 | false |
second | boolean | 是否显示秒选择 | true |
timeFilter | Array/Function | 时间过滤 | - |
startTimeFilter | Array/Function | 开始日期时间过滤,优先级高于 timeFilter | - |
endTimeFilter | Array/Function | 结束日期时间过滤,优先级高于 timeFilter | - |
language | string ('en','cn') | 时间过滤 | 'cn' |
时间选择器
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { Time } from 'beyond-datetime';
const filter = ()=> [[0,3,6,9,12,15,18,21],[0,15,30,45,60],[0,15,30,45,60]]
class MyComponent extends Component {
handlerSelect(range){
console.log(range.startDate,range.endDate);
}
render(){
return (
<div>
<Time filter={filter} onChange={this.handlerSelect}/>
</div>
)
}
}
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
defaultDate | Date | 设定默认日期值 | - |
date | Date | 设定日期值 | - |
onChange | Function | 改变日期/时间事件 | - |
onConfirm | Function | 通过确定按钮改变日期/时间事件 | - |
confirm | boolean | 显示按钮 | - |
second | boolean | 是否显示秒选择 | true |
filter | Array/Function | 时间过滤 | - |
language | string ('en','cn') | 时间过滤 | 'cn' |
require('beyond-datetime/css/index.css')
import React, { Component } from 'react';
import { Calendar,Trigger } from 'beyond-datetime';
class MyComponent extends Component {
constructor(props){
super(props)
this.state = {
date : null
}
}
handlerChange(date){
this.setState({date})
}
render(){
let {date} = this.state
return (
<div>
<Trigger target={<Calendar defaultDate={date} time onConfirm={this.handlerChange.bind(this)} />}>
<input type="text" value={date ? date.toString() : '' } />
</Trigger>
</div>
)
}
}
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
target | Calendar/DateRange | - | - |
wrapStyle | object | Trigger 会默认生成一个 div (style="display:inline-block")标签实现定位, 使用 wrapStyle 进行覆盖该div默认样式 | - |