【问题标题】:How to change 30-जनवरी-2019 to 2019-01-30 in php如何在 php 中将 30-जनवरी-2019 更改为 2019-01-30
【发布时间】:2019-02-01 05:39:37
【问题描述】:

我的代码是这样的,当我们在印地语中使用日期时遇到问题,并且在保存到数据库时它也会抛出错误并且它在 php 中不可读。我们已经通过 Locale php 标准函数对其进行了更改

$array = [$date1, $date2, date('Y-m-d', strtotime($date2))]; print_r($array);

Array
(
 [0] => 2014-08-10
 [1] => 2018-12-26
 [2] => 2018-12-26
)
Array
(
 [0] => 2019-01-31
 [1] => 30-जनवरी-2019  //We are using hindi 
 [2] => 1970-01-01  //Throwing wrong data it should be 2019-01-30
)

Warning : date_diff() expects parameter 2 to be DateTimeInterface, boolean given
Notice: Trying to get property of non-object

【问题讨论】:

  • 将印地语名称映射到英语等价物,然后存储我相信的数据
  • 是的@Satya 我同意你的建议,我已经考虑过了,但我需要一些花哨和标准的方法来做到这一点。如果您能帮上忙,非常感谢
  • 也可以更新db中的值
  • 字符串替换是否适用于从 ´जनवरी´ 到 ´January´ ?
  • @NewtonSingh,将印地语月份放在一个数组中,将英语月份放在另一个数组中。在存储之前,只需获取月份的英语等价物,用它创建一个新的日期对象,你应该可以完成。当您向用户本身显示日期时,该数组会派上用场,因此最好将其放在 Class 中并使用它

标签: php date hindi


【解决方案1】:

试试这个:-

$date = "30-जनवरी-2019";

$my_date = date('m/d/y', strtotime($date));

回显 $my_date;

【讨论】:

  • 当你确定后测试然后发布stackoverflow你的o / p:01/01/70不要发布错误答案
  • 我测试了这个 $date = "30-JANUARY-2019";我不能用印地语测试。
【解决方案2】:

您可以设置locale 并在date 函数中使用印地语

setlocale(LC_ALL, "hi_IN"); // locale for Hindi (India), You can reset locale as it is later

现在,

$date2 = "30-जनवरी-2019";
echo date('Y-m-d', strtotime($date2));

setlocale(LC_ALL, "en_US");  //  "English (United States)" you can reset after use

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 2020-07-17
    • 2023-03-24
    • 2020-05-12
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多