Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
絡(luò)編程之時(shí)間格式。
同學(xué)們好,今天我們分享的是如何讓搜索引擎等程序更容易地提取網(wǎng)頁(yè)中的時(shí)間信息。我們將使用time標(biāo)簽來(lái)實(shí)現(xiàn)這一目標(biāo)。這個(gè)標(biāo)簽?zāi)銈兛赡芤呀?jīng)有所了解,但是現(xiàn)在不需要掌握太多細(xì)節(jié),只需要知道它的作用即可。
現(xiàn)在來(lái)看看我們的示例頁(yè)面,可以看到頁(yè)面中包含了很多句不同時(shí)間格式的文字。這些文字并沒有什么特別之處,只是每一句都包含著時(shí)間信息。時(shí)間信息的格式比較復(fù)雜,但是這不影響我們的演示效果。
接下來(lái),我們將介紹實(shí)現(xiàn)代碼。time標(biāo)簽用于定義公歷日期或時(shí)間、二十四小時(shí)制,時(shí)間和時(shí)區(qū)偏移是可選的。在所有瀏覽器中,time標(biāo)簽不會(huì)渲染任何特殊的效果。但是,它可以讓搜索引擎更容易地在網(wǎng)頁(yè)中找到對(duì)應(yīng)的時(shí)間信息。
使用time標(biāo)簽的另一個(gè)原因是,世界上有許多不同的日期格式,但是這些不同的格式不容易被電腦識(shí)別。如果我們想自動(dòng)抓取頁(yè)面上所有事件的日期并將它們插入到日歷中,time元素可以讓我們附上清晰的可被機(jī)器識(shí)別的時(shí)間或日期。因此,time標(biāo)簽并不是為了給用戶看的,而是為了方便搜索引擎更好地在網(wǎng)頁(yè)上找到對(duì)應(yīng)的時(shí)間。
在我們的示例中,時(shí)間和普通文字看上去沒有任何區(qū)別。除了搜索引擎,網(wǎng)頁(yè)同手機(jī)上的日歷、提醒等應(yīng)用程序交互時(shí),time標(biāo)簽也可以提供很大的方便。
time標(biāo)簽非常簡(jiǎn)單,只包含一個(gè)屬性datatime,用于規(guī)定日期和時(shí)間。如果需要,我們還可以通過(guò)元素的內(nèi)容來(lái)指定日期和時(shí)間。time標(biāo)簽的值有很多種,只要是符合規(guī)范的時(shí)間寫法格式,都可以被接受并轉(zhuǎn)化為第三方使用的格式。
總之,time標(biāo)簽的使用頻率并不高,不需要我們進(jìn)行太多的學(xué)習(xí)和理解。如果你們知道有這個(gè)東西并且知道它的大概意思,就可以了。
今天的分享就到這里,所有的案例和相關(guān)文檔都可以向我索取。
下期見,想學(xué)習(xí)編程的同學(xué)請(qǐng)關(guān)注我。
期獲取方法
獲取方法用于獲取日期的某個(gè)部分(來(lái)自日期對(duì)象的信息)。下面是最常用的方法(以字母順序排序):
getTime() 方法返回自 1970 年 1 月 1 日以來(lái)的毫秒數(shù):
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getTime()</h2>
<p>JavaScript 中的內(nèi)部時(shí)鐘從 1970 年 1 月 1 日午夜開始計(jì)算。</p>
<p>getTime() 函數(shù)返回從那時(shí)起的毫秒數(shù):</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getTime();
</script>
</body>
</html>
getFullYear() 方法以四位數(shù)字形式返回日期年份
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getFullYear()</h2>
<p>getFullYear() 方法返回日期的完整年:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getFullYear();
</script>
</body>
</html>
getMonth() 以數(shù)字(0-11)返回日期的月份:
在 JavaScript 中,第一個(gè)月(1 月)是月號(hào) 0,因此 12 月返回月號(hào) 11。
您可以使用名稱數(shù)組,并使用 getMonth() 將月份作為名稱返回:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getMonth()</h2>
<p>getMonth()方法以 0 到 11 之間的數(shù)字返回日期的月份。</p>
<p>要獲得正確的月份,您必須添加 1:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getMonth() + 1;
</script>
</body>
</html>
getDate() 方法以數(shù)字(1-31)返回日期的日:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDate()</h2>
<p>getDate() 方法以數(shù)字(1-31)返回日期的日:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getDate();
</script>
</body>
</html>
getHours() 方法以數(shù)字(0-23)返回日期的小時(shí)數(shù):
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getHours()</h2>
<p>getHours() 方法以數(shù)字(0-23)返回日期的小時(shí):</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getHours();
</script>
</body>
</html>
getDay() 方法以數(shù)字(0-6)返回日期的星期名(weekday):
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDay()</h2>
<p>getDay() 方法將周名作為數(shù)字返回:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getDay();
</script>
</body>
</html>
在 JavaScript 中,一周的第一天(0)表示“星期日”,即使世界上的一些國(guó)家認(rèn)為周的第一天是“星期一”。
您可以使用名稱數(shù)組,并使用 getDay() 將星期名作為名稱返回:
niapp中的日歷組件需要用到開始時(shí)間和結(jié)束時(shí)間,這個(gè)時(shí)間是字符串形式的,如'2021-01-21'。
組件網(wǎng)址:https://ext.dcloud.net.cn/plugin?id=56
我的需求是得到7天前到現(xiàn)在日期的字符串形式,即
startDate: '2021-11-04'',
endDate: '2021-11-11',
上代碼:
Date.prototype.format = function(fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時(shí)
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
.length)));
}
}
return fmt;
}
//N天時(shí)間戳,時(shí)間戳指從1970-01-01 0點(diǎn)開始到某天的毫秒數(shù)
function timestamp(days) {
return days * 24 * 60 * 60 * 1000
}
//幾天前,一般以現(xiàn)在的時(shí)間為基準(zhǔn),參數(shù)默認(rèn)值老的瀏覽器可能不支持。
function days_ago(day, base_time = Date.now()) {
return new Date(base_time - timestamp(day))
}
//最常用的今天、昨天、明天,返回時(shí)間戳
function yesterday(){
return days_ago(1)
}
function tomorrow(){
return days_ago(-1)
}
function today(){
return new Date()
}
///字符串格式化的日期,英文常用,如2021-01-01
function en_format(func){
return func.format('yyyy-MM-dd')
}
function en_today(){
return en_format(today())
}
function en_yesterday(){
return en_format(days_ago(1))
}
function en_tomorrow(){
return en_format(days_ago(-1))
}
function cn_format(func){
return func.format('yyyy年MM月dd日')
}
//中文版今天,如2020年02月22日
function cn_today(){
return cn_format(today())
}
//中文版昨天,如1949年10月01日
function cn_yesterday(){
return cn_format(days_ago(1))
}
//中文版明天,如2035年09月09日
function cn_tomorrow(){
return cn_format(days_ago(-1))
}
cn_today()
'2021年11月10日'
cn_tomorrow()
'2021年11月11日'
cn_yesterday()
'2021年11月09日'
en_today()
'2021-11-10'
en_tomorrow()
'2021-11-11'
en_yesterday()
'2021-11-09'
en_format(days_ago(7))
'2021-11-03'
代碼還能再精簡(jiǎn),不過(guò)于我是已經(jīng)夠用了。
我是@愛玩的安哥,關(guān)注我獲取更多有用知識(shí)
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。