我正在开发一个网络应用程序,我有一个 unix 时间戳。
我需要使用 jQuery 选择器将 unix 日期格式转换为 Jalali/Persian/Shamsi 日历,然后使用 javascript 库进行转换。
类似于下面的代码将 Unix-Date 转换为 Jalali-Date :

<html>
  <head>
  <meta charset="utf-8">
  </head>

  <body>
  <div class="Unix-Date">1494259627</div> <!-- Unix equal of 1396/2/18 -->
  <div class="Jalali-Date"></div>

  <script src="jquery.js"></script>
  <script src="external-library.js"></script>
  <script>
  $(document).ready(function() {
  var UnixValue;
  var JalaliValue;
  UnixValue = $(".Unix-Date").html();
  JalaliValue = new JalaliExternalFunction(UnixValue);
  $(".Jalali-Date").text(JalaliValue);
  });
  </script>
  </body>
</html>

我搜索但没有找到任何好的图书馆。您是否知道一个可靠且良好的转换库(或从 unix 时间戳创建 Jalali 格式的日期)。我不需要你的实现或算法,因为这个问题太有问题并且有很多规则,我需要一个可靠的解决方案。

感谢

最佳答案

我建议使用 moment.js ( https://momentjs.com/ ),它是可靠的 JavaScript 时间库,允许您在 JavaScript 中格式化时间戳。下面是一个示例,说明如何解析时间戳并将其格式化为您想要使用的任何内容。

//formatting Unix timestamp.
var date = moment.unix(value).format("MM/DD/YYYY");

您还标记了可以使用的本地化;
 var localeDate = moment(date).locale("LT");

可以在那里的网站上找到更多示例。

这与 https://www.npmjs.com/package/jalali-date 相结合将为您提供 jalali 日期。

这里还有一个针对波斯语的 moment.js 扩展名 https://www.npmjs.com/package/moment-jalaali(从 moment 到 Jalali)

另一个 Jalali 转换库 https://www.npmjs.com/package/jalaali-js (To Jalai)

使用来自 Unix Timestamp https://jsfiddle.net/uw82ozpd/9/ 的 moment.js Jalali 转换的示例 fiddle

带注释的相关代码片段:
var UnixValue;
var JalaliValue;

$(document).ready(function() {

//get the Unix Date from HTML
var UnixValue = $(".Unix-Date").html();

//Get a moment timestamp in the format simmilar to our next conversion
var date = moment.unix(UnixValue).format("MM/DD/YY");

//Convert from normal moment to our jalali moment exstension using j's as below
var JalaliValue = moment(date).format('jYYYY/jM/jD');

$(".Jalali-Date").text(JalaliValue);

});

10-04 20:55