简体   繁体   English

javascript字符串到时间和上午/下午格式

[英]javascript string to time and am/pm format

I've a time in string format 我有时间用字符串格式

var start = "14:00:00"

and I need the output to be 我需要输出

02:00pm

<span>{{session.start | some-format}} to {{session.end}}<span>

or javascript manipulation (any will do) 或javascript操作(任何会做)

I looked up this page but it needs some kind of time stamp I guess. 我查了一下这个页面,但我猜它需要某种时间戳。

https://docs.angularjs.org/api/ng/filter/date https://docs.angularjs.org/api/ng/filter/date

Do something like: 做类似的事情:

function toTime(timeString){
    var timeTokens = timeString.split(':');
    return new Date(1970,0,1, timeTokens[0], timeTokens[1], timeTokens[2]);
}

var start = "14:00:00";
var date = toTime(start);

then apply the angular filter:

<span>{{date | date:'h:mm a'}} to {{session.end}}<span>

Using moment you can do something like this: 使用片刻你可以做这样的事情:

var timeArr = "14:00:00".split(':');

var date = new Date().setHours(timeArr[0], timeArr[1], timeArr[2])

var startTime = moment(date).format("h:mm:ss A");

var endTime = moment().format("h:mm:ss A");

I saw you mentioned angular documentation in the question so if you are after an Angular approach you can give it a try with this: 我看到你在问题中提到了角度文档,所以如果你正在使用Angular方法,你可以试试这个:

$scope.start = new Date();
{{ start | date: 'shortTime'}}

Example here: Plnkr 示例: Plnkr

Try this 尝试这个

function timeConvert (time) {
  time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];

  if (time.length > 1) { 
    time = time.slice (1);  
    time[5] = +time[0] < 12 ? 'AM' : 'PM';
    time[0] = +time[0] % 12 || 12;
  }
  return time.join ('');
}

timeConvert ('19:00:00');

out: "7:00:00PM" 出:“晚上7点00分”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM