使用 wkhtmltopdf 库生成 PDF 时的本地日期时间

Local datetime when generating PDF using wkhtmltopdf library

我正在使用 wkhtmltopdf (https://www.nuget.org/packages/wkhtmltopdf.mingw.86.exe/) 为 ASP.NET 网页生成 PDF 文件。我从 SQL Server 2012 DB 获得的网页中向用户显示了日期和时间。我以 UTC 格式存储所有日期。当我在浏览器中打开网页时,日期和时间显示为本地日期和时间,因为我使用 Moment.js 根据用户本地时区对其进行格式化。

在使用wkhtmltopdf 生成PDF 时是否可以做同样的事情? PDF 生成发生在服务器上,因此它始终显示服务器日期和时间,但我想显示用户本地日期和时间。

很棒的工具。而且它有一些特点。

我会建议在页面上放置一些脚本来评估所有带有 jQuery 的日期字段并专门操作日期字段?如果你的字符串的格式是 yyyy-MM-dd HH24:mm:ss.zzz UTC 就像值 2015-10-27 13:58:46.490 UTC 那么你可以在 JS 中用 new Date('2015-10-27 13:58:46.490 UTC') 解析它并调用 .toString() 来获取本地时间。

然后您可以将 --window-status 参数与 wkhtmltopdf 一起使用,以等待具有 运行 的脚本的给定状态。所以假设我们将 --window-status "Dates Manipulated" 传递给 wkhtmltopdf。当您的客户端脚本完成将日期字段操作为您想要的本地时间时,设置 window.status = 'Dates Manipulated' 并且 wkhtmltopdf 将完成您的文档转换。

由于您是在服务器端呈现它,我假设您可以访问正在设置的 URL。假设您的页面类似于 http://www.example.com/page_renderer,并且您在背面放置了一个查询参数,例如 http://www.example.com/page_renderer?timzeone=America/Toronto。现在您可以在 Javascript 函数中使用该时区来转换为指定的时区。

var localTime = moment.tz("2015-10-27 13:58:46.490 UTC", "America/Toronto");