【发布时间】:2010-05-13 10:56:15
【问题描述】:
我正在获取信用卡详细信息,并在两个表单字段中获取到期日期,一个用于到期月份,一个用于到期年份,我想将到期日期存储为时间戳。 strtotime("05/2010") 会创建一个时间戳,还是我也需要过去一天,还是有其他替代方法?
谢谢
【问题讨论】:
标签: php timestamp strtotime unix-timestamp
我正在获取信用卡详细信息,并在两个表单字段中获取到期日期,一个用于到期月份,一个用于到期年份,我想将到期日期存储为时间戳。 strtotime("05/2010") 会创建一个时间戳,还是我也需要过去一天,还是有其他替代方法?
谢谢
【问题讨论】:
标签: php timestamp strtotime unix-timestamp
不,这不起作用,strtotime("05/2010") 将返回 false。您还需要指定一天。但是,在这种情况下存在歧义,strtotime("01/05/2010") 是指 2010 年 5 月 1 日还是 2010 年 1 月 5 日?等等
您可能最好使用mktime() 而不是strtotime(),因为您可以明确说明哪些部分是月份和年份,然后只需传递 1 作为日期。
$timestamp = mktime(0,0,0,$month,1,$year); // Where $month = 5, $year = 2010
【讨论】:
更好地使用 mktime(): mktime(0, 0, 0, $month, 1, $year)
这将为给定年份中给定月份的第一天生成时间戳,时间为 00:00:00。
【讨论】:
如果您将“1”作为日期,您的编程将导致信用卡在该月的第一天到期。这不是标准做法,即让卡在每月的最后一天到期。可以使用 PHP date('t') 找到该月的最后一天。
也许您可以看到这篇文章(希望如此)。它教授了您在 PHP 中处理 DATETIME 值所需了解的大部分内容。
最好的问候,~雷
【讨论】: