time.js 826 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { defineStore } from "pinia";
  2. import { ref } from "vue";
  3. export const useTimeStore = defineStore("time", () => {
  4. const time = ref({
  5. startTime: 0,
  6. endTime: 0,
  7. });
  8. const start = () => {
  9. time.value.startTime = Date.now();
  10. };
  11. // 将时间戳转为mm/ss的格式
  12. const formatTime = (time) => {
  13. const minutes = Math.floor(time / 60000);
  14. const seconds = ((time % 60000) / 1000).toFixed(0);
  15. return `${minutes < 10 ? "0" : ""}${minutes}:${seconds < 10 ? "0" : ""}${seconds}`;
  16. };
  17. const end = () => {
  18. time.value.endTime = Date.now();
  19. const totalTime = time.value.endTime - time.value.startTime;
  20. time.value = {
  21. startTime: 0,
  22. endTime: 0,
  23. };
  24. return {
  25. totalTime,
  26. formatTime: formatTime(totalTime),
  27. };
  28. };
  29. return { time, start, end };
  30. });