date-and-time.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <div class="demo-datetime-picker">
  3. <div class="block">
  4. <span class="demonstration">Default</span>
  5. <el-date-picker v-model="value1" type="datetime" placeholder="Select date and time" />
  6. </div>
  7. <div class="block">
  8. <span class="demonstration">With shortcuts</span>
  9. <el-date-picker v-model="value2" type="datetime" placeholder="Select date and time" :shortcuts="shortcuts" />
  10. </div>
  11. <div class="block">
  12. <span class="demonstration">With default time</span>
  13. <el-date-picker v-model="value3" type="datetime" placeholder="Select date and time" :default-time="defaultTime" />
  14. </div>
  15. </div>
  16. </template>
  17. <script lang="ts" setup>
  18. import { ref } from 'vue'
  19. const value1 = ref('')
  20. const value2 = ref('')
  21. const value3 = ref('')
  22. const defaultTime = new Date(2000, 1, 1, 12, 0, 0)
  23. const shortcuts = [
  24. {
  25. text: 'Today',
  26. value: new Date(),
  27. },
  28. {
  29. text: 'Yesterday',
  30. value: () => {
  31. const date = new Date()
  32. date.setTime(date.getTime() - 3600 * 1000 * 24)
  33. return date
  34. },
  35. },
  36. {
  37. text: 'A week ago',
  38. value: () => {
  39. const date = new Date()
  40. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
  41. return date
  42. },
  43. },
  44. ]
  45. </script>
  46. <style scoped>
  47. .demo-datetime-picker {
  48. display: flex;
  49. width: 100%;
  50. padding: 0;
  51. flex-wrap: wrap;
  52. }
  53. .demo-datetime-picker .block {
  54. padding: 30px 0;
  55. text-align: center;
  56. border-right: solid 1px var(--el-border-color);
  57. flex: 1;
  58. }
  59. .demo-datetime-picker .block:last-child {
  60. border-right: none;
  61. }
  62. .demo-datetime-picker .demonstration {
  63. display: block;
  64. color: var(--el-text-color-secondary);
  65. font-size: 14px;
  66. margin-bottom: 20px;
  67. }
  68. </style>