parent
78c0c46125
commit
f31ee9534b
@ -0,0 +1,34 @@ |
||||
import {FC} from "react"; |
||||
import {Picker, View} from "@tarojs/components"; |
||||
|
||||
interface Props { |
||||
children: JSX.Element |
||||
disabled?: boolean |
||||
} |
||||
|
||||
const DateTimePicker: FC<Props> = (props) => { |
||||
|
||||
function bindMultiPickerChange(e) { |
||||
let activityArray = JSON.parse(JSON.stringify(this.activityArray)), |
||||
{value} = e.detail, |
||||
_result = []; |
||||
for (let i = 0; i < value.length; i++) { |
||||
_result[i] = activityArray[i][value[i]].id; |
||||
} |
||||
this.$emit("result", _result); |
||||
} |
||||
|
||||
|
||||
return ( |
||||
<Picker |
||||
mode="multiSelector" |
||||
range-key='name' |
||||
disabled={props.disabled} |
||||
onChange={bindMultiPickerChange} |
||||
> |
||||
{props.children}12 |
||||
</Picker> |
||||
) |
||||
} |
||||
|
||||
export default DateTimePicker |
@ -0,0 +1,104 @@ |
||||
interface DateTime { |
||||
year: number |
||||
month: number |
||||
day: number |
||||
hours: number |
||||
minutes: number |
||||
} |
||||
|
||||
/** |
||||
* 获取一个月的天数 |
||||
* @param year 年 |
||||
* @param month 月 |
||||
*/ |
||||
const getDaysInOneMonth = function (year: number, month: number): number { |
||||
let _month = parseInt(String(month), 10); |
||||
let d = new Date(year, _month, 0); |
||||
return d.getDate(); |
||||
}; |
||||
|
||||
|
||||
/** |
||||
* 获取时间 |
||||
* @param date 时间 |
||||
*/ |
||||
const dateDate = function (date: Date): DateTime { |
||||
let year = date.getFullYear(); |
||||
let month = date.getMonth() + 1; |
||||
let day = date.getDate(); |
||||
let hours = date.getHours(); |
||||
let minutes = date.getMinutes(); |
||||
return { |
||||
year, month, day, hours, minutes |
||||
} |
||||
}; |
||||
|
||||
interface DateTimePicker { |
||||
name: string |
||||
id: number | string |
||||
} |
||||
|
||||
/** |
||||
* 时间选择器 |
||||
* 获取date time 年份,月份,天数,小时,分钟推后30分 |
||||
* @param startyear 开始年 |
||||
* @param endyear 结束月 |
||||
*/ |
||||
const dateTimePicker = function (startyear: number, endyear: number) { |
||||
const years: DateTimePicker[] = []; |
||||
const months: DateTimePicker[] = []; |
||||
const hours: DateTimePicker[] = []; |
||||
const minutes: DateTimePicker[] = []; |
||||
for (let i = startyear - 20; i <= endyear + 20; i++) { |
||||
years.push({name: i + '年', id: i}) |
||||
} |
||||
|
||||
//获取月份
|
||||
for (let i: string | number = 1; i <= 12; i = Number(i) + 1) { |
||||
if (i < 10) { |
||||
i = "0" + i; |
||||
} |
||||
months.push({name: i + '月', id: i}); |
||||
} |
||||
|
||||
//获取小时
|
||||
for (let i: string | number = 0; i < 24; i = Number(i) + 1) { |
||||
if (i < 10) { |
||||
i = "0" + i |
||||
} |
||||
hours.push({name: i + '时', id: i}) |
||||
} |
||||
//获取分钟
|
||||
for (let i: string | number = 0; i < 60; i = Number(i) + 1) { |
||||
if (i < 10) { |
||||
i = "0" + i; |
||||
} |
||||
minutes.push({ |
||||
name: i + '分', |
||||
id: i |
||||
}); |
||||
} |
||||
return function (_year: number | string, _month: string | number) { |
||||
const days: DateTimePicker[] = []; |
||||
_year = parseInt(String(_year)); |
||||
_month = parseInt(String(_month)); |
||||
//获取日期
|
||||
for (let i: string | number = 0; i <= getDaysInOneMonth(_year, _month); i = Number(i) + 1) { |
||||
if (i < 10) { |
||||
i = "0" + i; |
||||
} |
||||
days.push({ |
||||
name: i + '日', |
||||
id: i |
||||
}); |
||||
} |
||||
return [years, months, days, hours, minutes]; |
||||
} |
||||
}; |
||||
|
||||
|
||||
export { |
||||
dateTimePicker, |
||||
getDaysInOneMonth, |
||||
dateDate |
||||
} |
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in new issue