getDataDate.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. const fs = require('fs');
  2. const jsonData = [
  3. ];
  4. function parseDate(dateString) {
  5. const months = {
  6. 'January': 0, 'February': 1, 'March': 2, 'April': 3, 'May': 4, 'June': 5,
  7. 'July': 6, 'August': 7, 'September': 8, 'October': 9, 'November': 10, 'December': 11
  8. };
  9. const regex = /(\b\w+ \d{1,2}(?:-\d{1,2})?,? \d{4}\b)/g;
  10. const matches = dateString.match(regex);
  11. if (matches) {
  12. const [start, end] = matches.map(match => {
  13. const parts = match.split(' ');
  14. const month = months[parts[0]];
  15. const day = parseInt(parts[1].replace(',', ''), 10);
  16. const year = parseInt(parts[2], 10);
  17. return new Date(year, month, day);
  18. });
  19. if (end) {
  20. return [formatDate(start), formatDate(end)];
  21. } else {
  22. return formatDate(start);
  23. }
  24. }
  25. return null;
  26. }
  27. function formatDate(date) {
  28. const year = date.getFullYear();
  29. const month = String(date.getMonth() + 1).padStart(2, '0');
  30. const day = String(date.getDate()).padStart(2, '0');
  31. return `${year}-${month}-${day}`;
  32. }
  33. const processedData = jsonData.map(event => {
  34. const { info } = event;
  35. const { time } = info;
  36. const formattedTime = parseDate(time);
  37. const formattedInfo = {
  38. ...info,
  39. date: formattedTime
  40. };
  41. return { ...event, info: formattedInfo };
  42. });
  43. try {
  44. fs.unlinkSync('data.json');
  45. } catch (err) {
  46. console.error('data文件不存在', err);
  47. }
  48. fs.writeFile('data.json', JSON.stringify(processedData, null, 2), (err) => {
  49. console.log(err)
  50. });