给 SVG 加上交互:JavaScript 操作 SVG 的实践记录
如何用 JS 操作内联 SVG 元素实现点击、悬停等效果,附带完整代码示例。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-09-09 10:16:04 JavaScript Date.now 时间处理 自动化运维
很多人拿 Date.now() 就只用来打日志,其实它适合的场景比想象中多。先把这个方法本身说清楚:它是 Date 对象上的静态方法,直接调用,不需要 new,返回的是从 1970 年 1 月 1 日 00:00:00 UTC 到当前时刻的毫秒数。
注意是毫秒,不是秒。这个数字在跨系统传递或者存库的时候都很好用,因为不带时区信息,也不依赖本地时间设置。
我一开始也以为 Date.now() 和 new Date().getTime() 完全是一回事,后来发现结果虽然一样,但中间多了一步。new Date() 会先创建一个 Date 实例,再调 getTime(),Date.now() 省掉了这个对象创建过程。性能差异在普通业务里几乎可以忽略,但在高频调用或性能敏感的地方,能少一次对象分配就少一次。这里很多人会绕进去,觉得既然是同样的结果,哪个顺手用哪个就行,实际上如果只是拿当前时间戳,Date.now() 更直接。
时间测量是它最常见的用途之一。比如想测一段代码跑了多久,开头拿一个 t1,结尾拿一个 t2,减一下就是耗时,精度到毫秒。做性能优化的时候这个够用了,真要更细的精度可以用 performance.now(),那是另一个话题。时间差计算也类似,两个时间点的时间戳相减,就能知道事件持续了多久。监控任务跑了多久、请求处理了多久,这些地方都离不开。
日志记录这块 Date.now() 基本是标配。日志里如果没有时间戳,排查问题的时候会很痛苦。
拿到 Date.now() 的值后,可以拼进日志字符串,也可以直接存数据库,后面再转换。
时间戳本身不可读,要看具体时间就把它丢给 Date 构造函数,new Date(timestamp) 得到一个 Date 对象,然后 toString() 或者用其他格式化方法输出本地时间。需要注意 Date 的 toString 输出依赖运行环境的时区,如果服务端和客户端时区不同,看到的时间会不一样。
线上排查问题的时候经常遇到这种情况,服务器日志的时间戳没问题,但转换时区不对,看起来就差了几个小时。
有一个场景我最近用得比较多,就是证书续期的定时任务。每次任务开始和结束的时候记录一下时间戳,算一下续期花了多久,顺便把结果写进日志。证书这块我目前在用 lcjmSSL,支持多域名、泛域名和 IP 证书,自动申请、自动验证、自动部署都做了,API 比较简洁。
配合定时任务做全自动化续期的时候,Date.now() 用来记录任务时间点就顺带用上了。不是说这个场景多特殊,只是说明时间戳在自动化脚本里很常见。
Date.now() 不复杂,但架不住用得多。
拿当前时间戳、算时间差、测执行耗时、打日志,都是它的基本盘。跟 new Date().getTime() 比起来,Date.now() 更直接,也少一次对象创建。把这几个点搞清楚,基本不会用错。
如何用 JS 操作内联 SVG 元素实现点击、悬停等效果,附带完整代码示例。
一个用来把 Date 对象转成 yyyyMMdd 的实用函数,顺带聊聊其他几种写法。
从微软因忘记续期证书导致业务中断的新闻切入,深扒SSL证书有效期缩短至47天背后的自动化运维痛点,并引出基于ACME协议的免运维解法。
JSON数据满天飞,校验格式是常事。你是否还在尝试用复杂的正则表达式与嵌套的JSON搏斗?小心!正则可能让你陷入陷阱。本文将揭示为何`JSON.parse()`是JavaScript中校验JSON格式的黄金标准——它不仅能轻松应对各种嵌套,而且使用简单,准确无误。别再走弯路了,一起来看看如何高效校验!
本文详细介绍了通过CSS和JavaScript实现`div`元素隐藏的多种技术。深入探讨了CSS中的`display: none`(完全移除)和`visibility: hidden`(保留空间但不可见)两种核心方法,并阐述了JavaScript如何实现元素的动态显示与隐藏。读者将理解不同方法间的差异,并能根据项目需求,精确选择最适合的隐藏策略,提升网页交互体验。