Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript日期转换为php日期格式_Php_Date - Fatal编程技术网

将javascript日期转换为php日期格式

将javascript日期转换为php日期格式,php,date,Php,Date,我使用的是一个很明显日期格式与php格式不匹配的 如何将datepicker格式转换为php格式,以便以datepicker格式中定义的相同约定输出date($format)。假设我将格式设置为dd/mm/yyyy,我如何在php中将其转换为m/d/o?或者,如果我将其指定为d-m-yy,如何将其转换为n-j-y 基本上,我想知道如何转换允许的日期选择器格式,而不管字母或分隔符是什么 我尝试过使用preg_replace,但问题是单字母和双字母相同dd变为nn,因为它试图替换d两次。也许可以用正

我使用的是一个很明显日期格式与php格式不匹配的

如何将datepicker格式转换为php格式,以便以datepicker格式中定义的相同约定输出
date($format)
。假设我将格式设置为
dd/mm/yyyy
,我如何在php中将其转换为
m/d/o
?或者,如果我将其指定为
d-m-yy
,如何将其转换为
n-j-y

基本上,我想知道如何转换允许的日期选择器格式,而不管字母或分隔符是什么

我尝试过使用preg_replace,但问题是单字母和双字母相同
dd
变为
nn
,因为它试图替换
d
两次。也许可以用正则表达式?我有点搞不懂转换的逻辑是怎么实现的

编辑:我对细节上的疏忽表示歉意。js格式字面上类似于
dd/mm/yyyy
,而不是实际的日期输出。在CMS中,用户定义日期选择器使用的格式(dd/mm/yyyy或日期选择器具有的任何其他格式序列和分隔符)。PHP用于使用定义的格式和顺序输出当前日期。我希望他们定义一个PHP格式,然后将其转换为js格式。但当权者总是想要他们想要的东西(叹气)

编辑#2 下面是代码板上的一个工作脚本,它显示了这种格式的字母被单独处理和折叠的问题
mm
变成
nn
,而不仅仅是
m
。其余的角色也在个性化


这就是我们的方法:

$date = '13/06/2013';
$date = implode("-",array_reverse(explode("/",$date)));
$time = strtotime($date);

echo date("m-d-Y H:i:s",$time); // or however you want to format
  • /
  • 颠倒数组的顺序以获得正确的
    strotime()
    格式
  • strotime()
    字符串的片段内爆

  • 这就是我们的做法:

    $date = '13/06/2013';
    $date = implode("-",array_reverse(explode("/",$date)));
    $time = strtotime($date);
    
    echo date("m-d-Y H:i:s",$time); // or however you want to format
    
  • /
  • 颠倒数组的顺序以获得正确的
    strotime()
    格式
  • strotime()
    字符串的片段内爆

  • 您可能需要使用,它让您定义字符串的格式。然后,使用该对象的format()函数以所需的方式输出日期

    例如:

    date_default_timezone_set('Europe/Berlin'); // or any other timezone - you must set a timezone though
    $date = DateTime::createFromFormat('d/m/Y', '20/05/1996');
    $formatted_date = $date->format('Y-m-d');
    var_dump($formatted_date); // output: string(10) "1996-05-20"
    

    您可以使用几乎所有与常规date()函数相同的格式字母,但如果需要额外的格式字母,例如“o”,您可以使用格式日期:
    $yet_other_date=date('m/d/o',strottime('formatted_date))

    您可能需要使用它,让您定义字符串的格式。然后,使用该对象的format()函数以所需的方式输出日期

    例如:

    date_default_timezone_set('Europe/Berlin'); // or any other timezone - you must set a timezone though
    $date = DateTime::createFromFormat('d/m/Y', '20/05/1996');
    $formatted_date = $date->format('Y-m-d');
    var_dump($formatted_date); // output: string(10) "1996-05-20"
    

    您可以使用几乎所有与常规date()函数相同的格式字母,但如果需要额外的格式字母,例如“o”,您可以使用格式日期:
    $yet_other_date=date('m/d/o',strottime('formatted_date))

    实际上比我想象的要容易。我不知道你能用我。因此,将其混合到两个阵列中并使用preg_替换

    $pattern = array( '#mm#i', '#m#i', '#dd#i', '#d#i', '#yyyy#i', '#yy#i' );
    $replacement = array( 'm', 'n', 'd', 'j', 'o', 'y' );
    
    $date_format = preg_replace( $pattern, $replacement, $option_format );
    

    非常感谢那些为我愚蠢的问题提供答案的人。我的道歉。

    实际上比我想象的要容易。我不知道你能用我。因此,将其混合到两个阵列中并使用preg_替换

    $pattern = array( '#mm#i', '#m#i', '#dd#i', '#d#i', '#yyyy#i', '#yy#i' );
    $replacement = array( 'm', 'n', 'd', 'j', 'o', 'y' );
    
    $date_format = preg_replace( $pattern, $replacement, $option_format );
    

    非常感谢那些为我愚蠢的问题提供答案的人。很抱歉。

    我只是正常地使用
    strotime()
    将Jquery的日期选择器的输出转换为时间戳,然后您可以使用
    date()
    将其转换为您想要的任何格式。我没有提到js日期格式实际上类似于dd/mm/yyyy,而不是实际的日期输出本身。抱歉你的疏忽。你可能也想看看这篇文章。我通常只是使用
    strotime()
    将Jquery的日期选择器的输出转换为时间戳,然后您可以使用
    date()
    将其转换为您想要的任何格式。我没有提到js日期格式实际上类似于dd/mm/yyyy,而不是实际的日期输出本身。抱歉你的疏忽。你可能也想看看这篇文章。重要的是要注意,如果您使用
    DateTime
    解决方案,则必须设置默认时区(即
    date\u default\u timezone\u set()
    )重要的是要注意,如果您使用
    DateTime
    解决方案,则必须设置默认时区(即
    date\u default\u timezone\u set()
    )对细节进行了编辑-我的道歉,但我没有更清楚地说明细节。对细节进行了编辑-我的道歉,但我没有更清楚地说明细节。今年我将使用PHP格式“Y”而不是“o”。对于'o'格式,“如果ISO周数(W)属于上一年或下一年,则使用该年。”(取自PHP文档)我将使用PHP格式'Y'而不是'o'表示该年。对于“o”格式,“如果ISO周数(W)属于上一年或下一年,则使用该年。”