如何将“21 marzo 2017”转换为 Unix 时间戳?
How to convert "21 marzo 2017" to Unix timestamp?
我有一个表示日期的字符串:21 marzo 2017
。我想将其转换为 Unix 时间戳。
echo strtotime('21 march 2017');
有效,因为月份是英文的。
echo strtotime('21 maggio 2017');
不起作用,因为月份是意大利语。
如何从该意大利字符串中获取 Unix 时间戳?
来自 strtotime
上的 PHP 文档:http://php.net/strtotime
strtotime — Parse about any English textual datetime description into a Unix timestamp
因此,实现您的要求的唯一方法是将您的月份翻译成英语。如何实现将取决于应用程序的上下文。
如果您只需要支持一种语言,您或许可以为意大利语到英语月份创建一个简单的字符串替换系统。
如果您需要更强大的翻译选项,您可能需要查看类似 Google Cloud Translation API 的内容:https://cloud.google.com/translate/docs/
您应该首先将您的月份转换为英语 str_replace
:
str_replace('marzo','march',"21 marzo 2017");
那你可以用echo strtotime('21 march 2017');
如果必须转换其他日期,请考虑使用函数和 switch-case。
我有一个表示日期的字符串:21 marzo 2017
。我想将其转换为 Unix 时间戳。
echo strtotime('21 march 2017');
有效,因为月份是英文的。echo strtotime('21 maggio 2017');
不起作用,因为月份是意大利语。
如何从该意大利字符串中获取 Unix 时间戳?
来自 strtotime
上的 PHP 文档:http://php.net/strtotime
strtotime — Parse about any English textual datetime description into a Unix timestamp
因此,实现您的要求的唯一方法是将您的月份翻译成英语。如何实现将取决于应用程序的上下文。
如果您只需要支持一种语言,您或许可以为意大利语到英语月份创建一个简单的字符串替换系统。
如果您需要更强大的翻译选项,您可能需要查看类似 Google Cloud Translation API 的内容:https://cloud.google.com/translate/docs/
您应该首先将您的月份转换为英语 str_replace
:
str_replace('marzo','march',"21 marzo 2017");
那你可以用echo strtotime('21 march 2017');
如果必须转换其他日期,请考虑使用函数和 switch-case。