编辑
2025-02-10
开发
00

目录

每日新闻API图片实现
01 实现思路
02 日期计算
日期计算示例
函数实现上述过程
03 js-calendar-converter使用
04 pm2 常用命令

每日新闻API图片实现

01 实现思路

00 在指定网站爬取每日新闻文字版,根据每日新闻页面数字与日期的关系设置爬取 url 【这里遇到问题是日期计算,具体来说是没有搞懂 001 Date()与时间戳之间的转换关系。 002 没有意识到每天日期生成 需要 写成函数 每次运行时候重新计算 不然 就始终会是第一次运行时的值 问题是因为直接在 服务器上写的代码 所以 不能调试 一直没有意识到这个问题】 01 对爬取到的文字,保存为对应日期txt文件 这里没有保存到数据库里实现是因为开始时候 图省事。 【有机会的话 后期还是借助数据库实现一下 就当练习了】 02 根据爬取到文字内容 借助 puppeteer模块 实现 新闻图片生成 并保存到 服务器上 【这里的问题 主要集中在 000 在服务器系统上 安装puppeteer模块和字体 需要安装 一堆其他的 文件 001 生成图片需要对应的模板页面文件 然后 把对应的新闻内容 替换进去 002 当前日期对应的农历日期 转换 使用的是 js-calendar-converter 模块 】

02 日期计算

日期计算示例

js
let date =new Date() console.log('服务器 当前时间该时区 对应的零时区时间', date) // 2025-02-10T02:45:00.023Z 此时是北京时间2025-02-10 10:45 let BJDate = date.toLocaleString('zh-CN' , { timeZone: 'Asia/Shanghai' }) // console.log('东八区北京时间' , BJDate) let BJDateObj = new Date(BJDate) // BJDateObj 的时间 和 new Date() 的时间是一致的 let initialDate = new Date('2025-01-31T00:00:00') let initialDate1 = new Date('2025-01-31T00:00:00+08:00') // 以上两行代码结果同样一致 // 2025-01-31T00:00:00 没有指明时区偏移 默认是当前服务器时区 //2025-01-31T00:00:00+08:00 日期 时间 时区时间偏移 let timeDiff = date - initialDate console.log('时间差', timeDiff) let dayDiff = Math.floor(timeDiff/1000/60/60/24) console.log('dayDiff', dayDiff) // 借助 时间戳 进行时间差值计算 最后以上代码 一定要在函数中实现 这样每次调用该函数 才会重新计算 date的值

函数实现上述过程

js
function dayDiffer() { let date =new Date() console.log('服务器 当前时间该时区 对应的零时区时间', date) // 2025-02-10T02:45:00.023Z 此时是北京时间2025-02-10 10:45 let BJDate = date.toLocaleString('zh-CN' , { timeZone: 'Asia/Shanghai' }) // console.log('东八区北京时间' , BJDate) let BJDateObj = new Date(BJDate) // BJDateObj 的时间 和 new Date() 的时间是一致的 let initialDate = new Date('2025-01-31T00:00:00') let initialDate1 = new Date('2025-01-31T00:00:00+08:00') // 以上两行代码结果同样一致 // 2025-01-31T00:00:00 没有指明时区偏移 默认是当前服务器时区 //2025-01-31T00:00:00+08:00 日期 时间 时区时间偏移 let timeDiff = date - initialDate console.log('时间差', timeDiff) let dayDiffer = Math.floor(timeDiff/1000/60/60/24) console.log('dayDiff', dayDiff) return dayDiffer }

03 js-calendar-converter使用

js
const calendar =require('js-calendar-converter'); const date = new Date() const dateInfo = calendar.solar2lunar(date) // 阳历转农历 日期 // { // date: '2024-6-15', // lunarDate: '2024-5-10', // festival: null, // lunarFestival: null, // lYear: 2024, // lMonth: 5, // lDay: 10, // Animal: '龙', // IMonthCn: '五月', // IDayCn: '初十', // cYear: 2024, // cMonth: 6, // cDay: 15, // gzYear: '甲辰', // gzMonth: '庚午', // gzDay: '庚戌', // isToday: false, // isLeap: false, // nWeek: 6, // ncWeek: '星期六', // isTerm: false, // Term: null, // astro: '双子座' // }

属性表

属性表.png

日期之间转换方法 image.png

image.png

调用示例网址博客

https://jjonline.github.io/calendar.js/demo.html

https://blog.jjonline.cn/userInterFace/173.html

GitHub项目地址:https://github.com/jjonline/calendar.js

04 pm2 常用命令

node进行管理工具

常用命令

全局安装pm2

js
npm install pm2 -g

查看版本号

js
pm2 --version

01 启动运行 某个文件 示例

js
pm2 start newsPic.js

对该文件起一个别名

js
pm2 start newsPic.js --name newsPicToday

停止某文件

js
pm2 stop [AppName] pm2 stop [ID] pm2 stop all

重启所有进程

js
pm2 restart all pm2 reload [ID] pm2 reload all

删除应用程序

js
pm2 delete [AppName] pm2 delete [ID] pm2 delete all

显示所有进程

js
pm2 list

显示日志

js
pm2 logs pm2 logs [ID] pm2 logs [AppName]

显示所有信息

js
pm2 show [name] pm2 show [ID]

查看进程占用信息

js
pm2 monit

本文作者:小明

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!