当前位置: 首页 > 面试题库 >

检查字符串是否为unix时间戳

祁柏
2023-03-14
问题内容

我有一个字符串,我需要找出它是否是unix时间戳,如何才能有效地做到这一点?

我通过Google找到了这个线程,但恐怕并没有一个非常可靠的答案。(是的,我在前面提到的帖子中抄写了原始海报上的问题)。


问题答案:

好吧,在摆弄了一段时间之后,我撤回了解决方案,date('U')建议改用此解决方案:

function isValidTimeStamp($timestamp)
{
    return ((string) (int) $timestamp === $timestamp) 
        && ($timestamp <= PHP_INT_MAX)
        && ($timestamp >= ~PHP_INT_MAX);
}

如果给定的$timestamp字符串 并且仅由数字和可选的减号组成,则此检查将仅返回true 。

var_dump( isValidTimeStamp(1)             ); // false
var_dump( isValidTimeStamp('1')           ); // TRUE
var_dump( isValidTimeStamp('1.0')         ); // false
var_dump( isValidTimeStamp('1.1')         ); // false
var_dump( isValidTimeStamp('0xFF')        ); // false
var_dump( isValidTimeStamp('0123')        ); // false
var_dump( isValidTimeStamp('01090')       ); // false
var_dump( isValidTimeStamp('-1000000')    ); // TRUE
var_dump( isValidTimeStamp('+1000000')    ); // false
var_dump( isValidTimeStamp('2147483648')  ); // false
var_dump( isValidTimeStamp('-2147483649') ); // false

检查PHP_INT_MAX是为了确保您的字符串可以被诸如此类正确使用date,例如,它可以确保不会发生这种情况*:

echo date('Y-m-d', '2147483648');  // 1901-12-13
echo date('Y-m-d', '-2147483649'); // 2038-01-19

在64位系统上,整数当然大于该整数,并且对于“ 2147483648”和“
-2147483649”,该函数将不再返回false,而对于相应的较大数字,该函数将不再返回false。

(*) 注意:我不确定100%,虽然位范围与可以使用的日期相对应



 类似资料:
  • 如何检查给定的字符串是laravel中的有效时间戳。我想为它定义一个验证。输入字符串本身是一个时间戳,没有任何格式。例如"56123231"

  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些

  • 问题内容: JavaScript中是否可以检查字符串是否为URL? 正则表达式被排除在外,因为URL的写法很像;也就是说,它可能没有,或者。 问题答案: 与答案相关的问题: 或来自Devshed的此正则表达式:

  • 问题内容: 假设我有一个包含一些字母和标点符号的String数组 在字母[3]中,我们带有“。” 如何检查字符串是否为标点符号?我们知道有许多可能的标点符号(,。?!等) 到目前为止,我的进度: 问题答案: 您是否还需要检查更多标点符号? 如果是这样,您可以执行此操作。

  • 问题内容: 检查值是否为有效日期(允许使用任何已知的日期格式)的简便方法是什么。 比如我有值,,它都应该被视为日期值,和值,,,不应被视为一个日期值。如果可能的话,最简单的检查方法是什么?因为时间戳也将被允许。 问题答案: 作为此副本的副本而被关闭,因此我认为在此处添加一些新信息很重要。我之所以写它,是因为我害怕人们会真正复制并粘贴此处发布的一些代码并在生产中使用它。 此处的大多数答案都使用一些仅

  • 问题内容: 如何检查给定的字符串是否采用以空格/换行符分隔的多个json字符串形式? 例如, 给定的:(3个json与空格连接) return :,因为item( 和)中的每个都是有效的json。 在Go中,我可以编写一个O(N ^ 2)函数,例如: 但这不适用于大量输入。 问题答案: 有两种选择。从编码的角度来看,最简单的方法就是正常解码JSON字符串。您可以通过解码为空结构来提高效率: (游乐