我有一個Shell腳本,它使用用戶輸入的日期和時間參數。 日期爲mm/dd/yyyy,時間爲HH:MM。 什麼是最簡單的方法來檢查用戶輸入正確的日期[如月應少於12 ....對於時間MM應小於60 ... 我們是否有任何內置函數在UNIX中爲檢查時間戳?檢查用戶在UNIX中輸入的日期和時間
4
A
回答
2
您可以使用unix 日期工具爲您解析並驗證它,然後測試返回碼例如
爲0的有效日期,返回代碼:
[email protected]:~$ date -d "12/12/2000 13:00"
Tue Dec 12 13:00:00 GMT 2000
[email protected]:~$ echo $?
0
了無效的日期,返回代碼1:
[email protected]:~$ date -d "13/12/2000 13:00"
date: invalid date `13/12/2000 13:00'
[email protected]:~$ echo $?
1
可以通過使用改變由日期接受的輸入格式+格式選項(man date)
把它放在一起作爲一個小s CRIPT:
usrdate=$1
date -d "$usrdate" > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Date $usrdate was valid"
else
echo "Date $usrdate was invalid"
fi
0
你可以使用grep
檢查輸入符合正確的格式:
if ! echo "$INPUT" | grep -q 'PATTERN'; then
# handle input error
fi
其中PATTERN是匹配所有有效輸入,只有輸入有效定期expressino。我留給你建造這種模式;-)。
0
(晚答案)
東西,你可以使用:
...
DATETIME=$1
#validate datetime..
tmp=`date -d "$DATETIME" 2>&1` ; #return is: "date: invalid date `something'"
if [ "${tmp:6:7}" == "invalid" ]; then
echo "Invalid datetime: $DATETIME" ;
else
... valid datetime, do something with it ...
fi
相關問題
- 1. 檢查日期時間輸入和數據庫日期時間
- 2. 將輸入日期和時間的用戶更改爲unix時間戳
- 3. 如何檢查用戶是否輸入默認日期時間?
- 4. Play中的輸入!日期和時間?
- 5. 如何在一行上輸入用戶的日期和時間
- 6. C#:Unix時間戳和日期時間
- 7. 在android中比較輸入日期和時間與當前日期和時間
- 8. Unix日期時間不一致時間轉換和24小時輸入錯誤
- 9. C# - 如何獲得日期和時間的用戶輸入
- 10. 在UNIX數據庫中檢查日期
- 11. PHP的檢查時間和日期
- 12. 如何檢查日期時間進入
- 13. Datagridview Dataerror在日期時間列中未捕獲用戶輸入
- 14. 修改mysql數據庫用戶輸入日期和時間
- 15. 檢查Unix的日期時間爲5分鐘以內
- 16. Moment.js檢查日期時間是否在一組日期和時間之間
- 17. 用戶輸入的Python檢查日
- 18. MVC輸入日期時間
- 19. 檢查日期時間
- 20. Rails日期時間輸入和微秒
- 21. 批次檢查日期和時間
- 22. c#日期和時間檢查
- 23. 檢查模式日期和時間後
- 24. 檢查輸入的日期時間是否在2個日期時間值的範圍之內
- 25. 轉換POSIX日期和時間UNIX時間中的R
- 26. 將用戶輸入的時間轉換爲UNIX時間? [Android]
- 27. 日期到Unix時間戳
- 28. Unix時間戳和mysql日期:birthdate
- 29. jq日期和unix時間戳
- 30. 使用PHP在mysql中插入/輸出日期和時間?
不回答你的問題,但是這總是我的錯誤:「日期爲MM/DD/YYYY 「:該格式僅在北美使用。考慮使用ISO-8601格式yyyy-mm-dd。 – Raedwald 2011-01-06 12:48:36
LOL,讓混蛋進入UNIX時間,如果他們不知道,他們是不值得的用戶! – Anders 2011-01-06 12:56:17