相关疑难解决方法(0)

PHP,如何以特定格式获取当前日期

2011-03-04 21:00:40

我想以上述格式获取当前日期和时间.我如何在PHP中执行此操作?

php

45
推荐指数
3
解决办法
11万
查看次数

在PHP应用程序中实现国际化(语言字符串)

我想构建一个可以处理获取区域设置字符串以支持国际化的CMS.我计划将字符串存储在数据库中,然后在数据库和应用程序之间放置一个键/值缓存(如memcache),以防止性能下降,从而使每个页面的数据库都能进行翻译.

这比使用带有字符串数组的PHP文件更复杂 - 但是当你有2,000个翻译行时,这种方法效率非常低.

我想过使用gettext,但我不确定CMS的用户是否会习惯使用gettext文件.如果字符串存储在数据库中,那么可以设置一个不错的管理系统,允许它们随时进行更改,RAM中的缓存将确保获取这些字符串的速度比gettext快或快.考虑到甚至zend框架都没有使用它,我也觉得使用PHP扩展并不安全.

这种方法有什么问题吗?

更新

我想也许我会增加更多的思考.字符串翻译的一个问题是它们不支持日期,金钱或条件语句.但是,感谢intl PHP现在有了MessageFormatter,无论如何都需要使用它.

// Load string from gettext file
$string = _("{0} resulted in {1,choice,0#no errors|1#single error|1<{1, number} errors}");

// Format using the current locale
msgfmt_format_message(setlocale(LC_ALL, 0), $string, array('Update', 3));
Run Code Online (Sandbox Code Playgroud)

另一方面,我不喜欢gettext的一个原因是文本被嵌入到整个应用程序中.这意味着负责主要翻译的团队(通常是英语)必须能够访问项目源代码,以便在默认语句的所有位置进行更改.它几乎与遍布SQL意大利面条代码的应用程序一样糟糕.

因此,使用这样的键是有意义的_('error.404_not_found'),然后允许内容编写者和翻译者只是担心PO/MO文件而不会弄乱代码.

但是,如果给定键不存在 gettext转换,则无法回退到默认值(就像使用自定义处理程序一样).这意味着您要么在代码中使用写入器 - 或者向没有语言环境转换的用户显示"error.404_not_found"!

另外,我不知道任何使用PHP的gettext的大型项目.我很感激任何链接到使用良好(因此经过测试)的系统,这些系统实际上依赖于本机PHP gettext扩展.

php globalization internationalization icu

19
推荐指数
2
解决办法
7045
查看次数

如何获得我当前的时区名称和日期?

现在约会我的国家10.01.2018和时间10:03.我的时区名称是"Asia/Tashkent",如果我写代码:

echo date_default_timezone_get();
echo date('d-m-y H:m');
Run Code Online (Sandbox Code Playgroud)

显示的时区名称:Europe/Moscow 日期时间:10-01-18 08:01

我怎么能得到我的时区和我目前的约会?

php

-2
推荐指数
1
解决办法
72
查看次数

标签 统计

php ×3

globalization ×1

icu ×1

internationalization ×1