[编辑]:我想人们很难理解我的意思,所以我完全重写了我的解释。
我在一个项目中工作,用户可以定义整个站点中使用的日期格式。它使用 PHP 日期格式标准。例如:“年-月-日”由“Ymd”设置。
PHP 标准使用Y、m、d、F、j等单字符符号来描述日期格式。如文档中所示:http ://www.php.net/manual/en/function.date.php
借助 jQueryUI Datepicker,有时用户可以选择日期。该组件使用yy、y、mm、dd、D 等代码字描述其日期格式... http://api.jqueryui.com/datepicker/#utility-formatDate
我想为 PHP 和 Datepicker 以相同的格式显示日期。我的意思是 PHP 应该以用户设置的格式输出日期,并且 Datepicker 应该以相同的格式显示所选日期。
鉴于:
- 日期格式必然描述为“PHP风格”
- 我无法先验地知道用户设置了哪种格式
/!\ 这不是如何从已知格式读取/解析/显示日期的问题。
不幸的是,Javascript 日期格式描述与 PHP 中的不同。例如,这两种日期格式是等效的,但在 PHP 和 Javascript 中的描述不同:
- PHP : Ymd (由用户设置)
- Javascript : 年月日日
如您所见,我不能只用 PHP 日期格式配置 datepicker,因为它会被误解,或者根本无法识别。
有人(在下面的答案中)建议创建我自己的“日期格式标准转换器”,将每个 PHP 符号与其在 JS 日期格式描述中的等价物匹配。就像:
- Y => 年
- 米 => 毫米
- d => dd
- y => y
- z => o
- ...
然后将每个 PHP 符号替换为 JS 符号。所以“d/m/Y”会神奇地翻译成“dd/mm/yy”。
但也许有人知道另一种使 jQueryUI Datepicker 理解 PHP 日期格式标准的正确方法?
编辑:我写了一个教程来解释问题和解决方案。进一步阅读:http ://tristan-jahier.fr/blog/2013/08/convertir-un-format-de-date-php-en-format-de-date-jqueryui-datepicker