将(例如)Y-m-d 字符串从 PHP 转换为 JS 中的等效日期格式

Posted

技术标签:

【中文标题】将(例如)Y-m-d 字符串从 PHP 转换为 JS 中的等效日期格式【英文标题】:Convert a string of (for example) Y-m-d from PHP to the equivalent date format in JS 【发布时间】:2020-12-04 17:26:11 【问题描述】:

我有一个 php 变量,它是一个日期格式字符串,它是“Y-m-d”,但也可以是其他日期格式字符串,我想将它传递给一个需要 JS 日期格式字符串的脚本。

因此我的 PHP 中的 Y-m-d 相当于 JS 中的 YYYY-MM-DD。

我可以在 PHP 或 JS 端做什么来将基于 PHP 的 Y-m-d 日期格式字符串转换为 JS 等效项?

我希望转换日期格式字符串本身,而不是实际日期。

【问题讨论】:

var date = <?php echo $date; ?> 并从那里格式化?或者创建一个 PHP 日期时间对象并将其格式化并将其存储在 JS 变量中。有多种工作方式 $date 将是字符串 'Y-m-d' - 日期格式,而不是实际日期,我正在尝试将该日期字符串转换为 JS 等效日期格式字符串。 datetime 对象会为此工作吗? 原谅我这样问,但是,你到底在做什么?我对你的情况感到很困惑。您能否更新您的问题以给我们一个示例或正确阐明您想要实现的目标? JS 日期对象没有与 PHP 相同的日期格式标记。为什么你还需要这样做? 我正在使用这个wakirin.github.io/Litepicker 它接受日期格式作为字符串,例如YYYY-MM-DD,我将日期格式保存在数据库中为 Y-m-d(基于 PHP 的日期格式),我只想将该日期格式传递给脚本,并认为我可以将其转换为它的格式接受。 【参考方案1】:

我真的不确定您的问题是什么。但是我已经创建了您正在使用的本地版本,并且创建了以下代码:

  <input value="<?php echo date('Y-m-d'); ?>" id="litepicker">
  <script src="https://cdn.jsdelivr.net/npm/litepicker/dist/js/main.js"></script>
  <script>
    var picker = new Litepicker( 
      element: document.getElementById('litepicker'),
      format: 'D MMM, YYYY',
    );
  </script>

如您所见,它是一个新的 Litepicker 实例,其格式看起来不错,但输入元素的值设置为您从数据库返回的值,它在屏幕上看起来像这样:

如果我误解了你,请告诉我。但我看不到问题。

【讨论】:

不,我实际上想在该行中使用 PHP 日期回显: format: 'D MMM, YYYY' 但它不接受 PHP 日期格式字符串 @bigdaveygeorge 你将不得不真正解释什么不起作用。我以正确的方式使用 php date 并解析 Litepicker 实例中的日期格式,我不知道你的问题是什么或你想要实现什么,它工作正常。

以上是关于将(例如)Y-m-d 字符串从 PHP 转换为 JS 中的等效日期格式的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:在保存到数据库之前从 jQuery UI Datepicker 将 m/d/Y 转换为 Y-m-d

php时间格式怎么转换?

DateInterval 类的 php 对象无法转换为字符串

函数:PHP将字符串从GBK转换为UTF8字符集iconv

在php中将纪元时间斜坡转换为格式化的日期字符串[重复]

PHP将格式化日期转换为unixtime [重复]