如何将javascript日期转换为hijri格式?

Nir*_*ole 4 javascript date angularjs

嗨,我正在 Angularjs/JavaScript 中开发 Web 应用程序。我有一个日历选择器,我正在从前端捕获日期。在数据库中保存所选日期时,我想以回历格式保存。我遵循将公历日期转换为回历日期,当我在 writeIslamicDate 中传递 1 时它工作正常。例如:

var today=new Date();
writeIslamicDate(today);
Run Code Online (Sandbox Code Playgroud)

如果我通过今天的日期那么它给了我undefined, NaN undefined NaN AH所以我可以知道在将输入传递给 writeIslamicDate 之前我是否需要转换为任何格式?有人可以帮助我吗?任何帮助,将不胜感激。谢谢你。

ham*_*hib 6

您可以使用 moment-hijri.js 它是一个强大的库来转换日期

Git 仓库

moment('2014-11-28 16:40:00', 'YYYY-M-D HH:mm:ss').endOf('iMonth').format('iYYYY/iM/iD HH:mm:ss'); // 1436/2/30 23:59:59
Run Code Online (Sandbox Code Playgroud)

JSFIDDEL 示例


Rob*_*obG 5

您所需要的只是对链接的功能稍作调整。要允许输入日期进行可选调整,您需要允许传入日期,因此进行以下更改:

function writeIslamicDate(adjustment) {
  ...
  var iDate = kuwaiticalendar(adjustment);
Run Code Online (Sandbox Code Playgroud)

function writeIslamicDate(date, adjustment) {
  ...
  var iDate = kuwaiticalendar(date, adjustment);
Run Code Online (Sandbox Code Playgroud)

function kuwaiticalendar(adjust) {
  var today = new Date();
Run Code Online (Sandbox Code Playgroud)

到:

function kuwaiticalendar(date, adjust) {
  var today = date || new Date();
Run Code Online (Sandbox Code Playgroud)

并用日期或不调用它。下面是完整的修改代码(清理了一点)。也可以试试toLocaleString带选项,不仅可以转换成伊斯兰历,还可以使用宿主的默认语言。

function writeIslamicDate(adjustment) {
  ...
  var iDate = kuwaiticalendar(adjustment);
Run Code Online (Sandbox Code Playgroud)

使用toLocaleString您可以执行以下操作。

function writeIslamicDate(date, adjustment) {
  ...
  var iDate = kuwaiticalendar(date, adjustment);
Run Code Online (Sandbox Code Playgroud)