絡編程之時間格式。
同學們好,今天我們分享的是如何讓搜索引擎等程序更容易地提取網頁中的時間信息。我們將使用time標簽來實現這一目標。這個標簽你們可能已經有所了解,但是現在不需要掌握太多細節,只需要知道它的作用即可。
現在來看看我們的示例頁面,可以看到頁面中包含了很多句不同時間格式的文字。這些文字并沒有什么特別之處,只是每一句都包含著時間信息。時間信息的格式比較復雜,但是這不影響我們的演示效果。
接下來,我們將介紹實現代碼。time標簽用于定義公歷日期或時間、二十四小時制,時間和時區偏移是可選的。在所有瀏覽器中,time標簽不會渲染任何特殊的效果。但是,它可以讓搜索引擎更容易地在網頁中找到對應的時間信息。
使用time標簽的另一個原因是,世界上有許多不同的日期格式,但是這些不同的格式不容易被電腦識別。如果我們想自動抓取頁面上所有事件的日期并將它們插入到日歷中,time元素可以讓我們附上清晰的可被機器識別的時間或日期。因此,time標簽并不是為了給用戶看的,而是為了方便搜索引擎更好地在網頁上找到對應的時間。
在我們的示例中,時間和普通文字看上去沒有任何區別。除了搜索引擎,網頁同手機上的日歷、提醒等應用程序交互時,time標簽也可以提供很大的方便。
time標簽非常簡單,只包含一個屬性datatime,用于規定日期和時間。如果需要,我們還可以通過元素的內容來指定日期和時間。time標簽的值有很多種,只要是符合規范的時間寫法格式,都可以被接受并轉化為第三方使用的格式。
總之,time標簽的使用頻率并不高,不需要我們進行太多的學習和理解。如果你們知道有這個東西并且知道它的大概意思,就可以了。
今天的分享就到這里,所有的案例和相關文檔都可以向我索取。
下期見,想學習編程的同學請關注我。
期獲取方法
獲取方法用于獲取日期的某個部分(來自日期對象的信息)。下面是最常用的方法(以字母順序排序):
getTime() 方法返回自 1970 年 1 月 1 日以來的毫秒數:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getTime()</h2>
<p>JavaScript 中的內部時鐘從 1970 年 1 月 1 日午夜開始計算。</p>
<p>getTime() 函數返回從那時起的毫秒數:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getTime();
</script>
</body>
</html>
getFullYear() 方法以四位數字形式返回日期年份
<!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() 以數字(0-11)返回日期的月份:
在 JavaScript 中,第一個月(1 月)是月號 0,因此 12 月返回月號 11。
您可以使用名稱數組,并使用 getMonth() 將月份作為名稱返回:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getMonth()</h2>
<p>getMonth()方法以 0 到 11 之間的數字返回日期的月份。</p>
<p>要獲得正確的月份,您必須添加 1:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getMonth() + 1;
</script>
</body>
</html>
getDate() 方法以數字(1-31)返回日期的日:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDate()</h2>
<p>getDate() 方法以數字(1-31)返回日期的日:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getDate();
</script>
</body>
</html>
getHours() 方法以數字(0-23)返回日期的小時數:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getHours()</h2>
<p>getHours() 方法以數字(0-23)返回日期的小時:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getHours();
</script>
</body>
</html>
getDay() 方法以數字(0-6)返回日期的星期名(weekday):
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDay()</h2>
<p>getDay() 方法將周名作為數字返回:</p>
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d.getDay();
</script>
</body>
</html>
在 JavaScript 中,一周的第一天(0)表示“星期日”,即使世界上的一些國家認為周的第一天是“星期一”。
您可以使用名稱數組,并使用 getDay() 將星期名作為名稱返回:
niapp中的日歷組件需要用到開始時間和結束時間,這個時間是字符串形式的,如'2021-01-21'。
組件網址:https://ext.dcloud.net.cn/plugin?id=56
我的需求是得到7天前到現在日期的字符串形式,即
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(), //小時
"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天時間戳,時間戳指從1970-01-01 0點開始到某天的毫秒數
function timestamp(days) {
return days * 24 * 60 * 60 * 1000
}
//幾天前,一般以現在的時間為基準,參數默認值老的瀏覽器可能不支持。
function days_ago(day, base_time = Date.now()) {
return new Date(base_time - timestamp(day))
}
//最常用的今天、昨天、明天,返回時間戳
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'
代碼還能再精簡,不過于我是已經夠用了。
我是@愛玩的安哥,關注我獲取更多有用知識
*請認真填寫需求信息,我們會在24小時內與您取得聯系。