util.ts 973 B

123456789101112131415161718192021222324252627282930
  1. import { type DateTimeType } from './types'
  2. /**
  3. * @description 根据传入的值和类型,获取当前的选项数组,便于传入 pickerView
  4. * @param value
  5. * @param type picker类型
  6. * @param useSecond 是否使用秒,仅在 time 和 datetime 类型下生效
  7. */
  8. export function getPickerValue(value: string | number, type: DateTimeType, useSecond: boolean = false) {
  9. const values: number[] = []
  10. const date = new Date(value)
  11. if (type === 'time') {
  12. const pair = String(value).split(':')
  13. values.push(parseInt(pair[0]), parseInt(pair[1]))
  14. if (useSecond && pair[2]) {
  15. values.push(parseInt(pair[2]))
  16. }
  17. } else {
  18. values.push(date.getFullYear(), date.getMonth() + 1)
  19. if (type === 'date') {
  20. values.push(date.getDate())
  21. } else if (type === 'datetime') {
  22. values.push(date.getDate(), date.getHours(), date.getMinutes())
  23. if (useSecond) {
  24. values.push(date.getSeconds())
  25. }
  26. }
  27. }
  28. return values
  29. }