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