import GregorianCalendar from 'gregorian-calendar';
import DateTimeFormat from 'gregorian-calendar-format';
-import zhCn from 'gregorian-calendar/lib/locale/zh_CN';
import TimePicker from 'rc-time-picker';
import TimePickerLocale from 'rc-time-picker/src/locale/zh_CN';
const formatter = new DateTimeFormat(str);
-const now = new GregorianCalendar(zhCn);
+const now = new GregorianCalendar(TimePickerLocale.calendar);
now.setTime(Date.now());
+function generateOptions(length, excludedOptions) {
+ const arr = [];
+ for (let value = 0; value < length; value++) {
+ if (excludedOptions.indexOf(value) < 0) {
+ arr.push(value);
+ }
+ }
+ return arr;
+}
+
function onChange(value) {
console.log(value && formatter.format(value));
}
+function disabledHours() {
+ return [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23];
+}
+
+function disabledMinutes(h) {
+ switch (h) {
+ case 9:
+ return generateOptions(60, [30]);
+ case 21:
+ return generateOptions(60, [0]);
+ default:
+ return generateOptions(60, [0, 30]);
+ }
+}
+
+function disabledSeconds(h, m) {
+ return [h + m % 60];
+}
+
ReactDom.render(
<TimePicker formatter={formatter} locale={TimePickerLocale}
showSecond={showSecond}
defaultValue={now}
className="xxx"
onChange={onChange}
- disabledHours={[0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23]}
- disabledMinutes={[0, 2, 4, 6, 8]} />,
+ disabledHours={disabledHours}
+ disabledMinutes={disabledMinutes}
+ disabledSeconds={disabledSeconds} />,
document.getElementById('__react-content')
);