簡體   English   中英

在PHP中使用日期而不使用正則表達式

[英]Manipulating Dates in PHP without using Regular Expressions

有沒有辦法更改日期

1985-12-15

1985-12

不使用正則表達式?

<?php echo date('Y-m', strtotime('1985-12-15')); ?>

那應該做。

這將使用strtotime將1985-12-15轉換為unix時間戳。 然后,日期函數將使用第二個參數時間戳來格式化日期。

通過strtotime將日期轉換為時間,然后使用date以正確的日期格式輸出,如下所示:

<?php    
echo date('Y-m', strtotime('1985-12-15'));

也許我只是愚蠢,但是如果您只想將該日期的開頭存儲為字符串,您是否不能僅使用substr提取該字符串開頭的7個字符?

有點像這樣,例如:

$input = '1985-12-15';

$output = substr($input, 0, 7);
var_dump($output);

哪一個給你:

string '1985-12' (length=7)

在這種情況下,不需要任何與日期操作相關的功能-而且將字符串解析為日期和所有其他內容的過程可能更快,更便宜。

(是的,我知道,過早的優化^^)

$myDate = date('Y-m',strtotime('1985-12-15'));
echo $myDate // prints '1985-12'

不是最好的substr($date,0,strrpos($date,'-'));

那會最便宜嗎?

如果您認為正則表達式不是“便宜的”,那么時間函數幾乎肯定會更加昂貴:您需要將字符串轉換為時間值,然后將其格式化為字符串...

您是否已經在數組中擁有該時間值,或者您想從日期函數中獲得類似的輸出?

如果不確定日期的格式,則應使用strtotime函數,否則,如果格式為yyyy-mmm-dd或yy-md,則可能很容易做到。

$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM